Java 更新Tomcat库文件夹

Java 更新Tomcat库文件夹,java,tomcat,jersey,Java,Tomcat,Jersey,我使用Jersey插件开发了一个应用程序,并部署在Tomact7上。 我必须将项目中使用的所有JAR导出到Tomact的lib/文件夹中。。但是我不想。。 是否可以在不将JAR导出到Tomcat lib文件夹的情况下部署我的应用程序。如果是的话,怎么办 这是我的应用程序链接,如果未导出lib/则会出现以下错误: HTTP Status 404 - Servlet Jersey REST Service is not available type Status report message

我使用Jersey插件开发了一个应用程序,并部署在Tomact7上。 我必须将项目中使用的所有JAR导出到Tomact的lib/文件夹中。。但是我不想。。 是否可以在不将JAR导出到Tomcat lib文件夹的情况下部署我的应用程序。如果是的话,怎么办

这是我的应用程序链接,如果未导出lib/则会出现以下错误:

HTTP Status 404 - Servlet Jersey REST Service is not available

type Status report

message Servlet Jersey REST Service is not available

description The requested resource (Servlet Jersey REST Service is not available) is not available.

Apache Tomcat/6.0.35

无论是使用ant还是Maven打包,您总是需要lib文件夹中所需的JAR—您总是需要lib文件夹中的JAR。您在那里看到的错误是应用程序找不到Jersey JAR


JAR建成后应该是战争的一部分。

你说“JAR应该是战争的一部分”——Preetam说“我必须将项目中使用的所有JAR导出到Tomcat的lib文件夹中”。这是一个显著的区别!这些库实际上可以打包到WAR中吗,或者它们需要添加到Tomcat类路径中吗?一般来说,我的理解是,将LIB打包到WAR中比打包到Tomcat类路径中要好得多。这样做的原因是,您可以通过将类加载问题放到后面的Tomcat类路径中来创建类加载问题。尽管我非常乐意在这里找到一个不合适的替代方案:)。我非常同意把事情投入战争会更好,原因有很多。然而,我不知道在这种情况下这是否可能。有时某些库必须位于容器类路径上。通常,在API的实现中,实现加载程序位于容器类路径上,因此无法看到从应用程序类路径加载的类。XML解析器是一个典型的例子,我已经看到JAX-WS客户端库也有同样的问题。你不能把它们放在战争中,它们必须放在容器的lib目录中。不幸的是,幸运的是,我从来没有遇到过与必须放在容器库中的库相关的问题!我认为该文件夹的最初目的是包含“共享”库(由多个web应用程序使用),有趣的是,每个版本的Tomcat都删除并重构了这些文件夹(有common/lib和shared/lib…现在只有lib),我总是觉得“共享”跨不同web应用程序的库是有点危险的,因为如果一个应用程序突然使用了库的不同版本,您必须进行重构,然后将其包含在.war类路径中。用一句话来说,磁盘空间很便宜——我宁愿没有依赖关系,而只是在两个war文件中拥有相同的库。