java - Tomcat 应用程序正在从一个 jar 加载它的所有代码 - 它说在哪里使用那个 jar?

标签 java tomcat

我正在使用的其他开发人员编写的这个 Java 网络应用程序是以标准方式构建的。但是,.class 文件并不位于 WEB-INF/classes 下,而是组合在一个 .jar 中并存储在 WEB-INF/lib/myapp 下.jar

问题是我找不到程序告诉 Tomcat 为类文件加载 myapp.jar 的位置。该应用程序运行良好,但它如何知道加载 myapp.jar

我已经尝试 grepping 几乎所有的 conf 文件(在 Tomcat 和应用程序内部),但我无法在任何地方引用这个 myapp.jar 文件.

最佳答案

根据@nhnb 所说,here是 Apache 对 Tomcat 的类加载器如何工作的解释。

WebappX - A class loader is created for each web application that is deployed in a single Tomcat 6 instance. All unpacked classes and resources in the /WEB-INF/classes directory of your web application archive, plus classes and resources in JAR files under the /WEB-INF/lib directory of your web application archive, are made visible to the containing web application, but to no others.

因此,如果你想引用 myApp.jar,你必须在该 webapp 的同一个类加载器下,这实际上意味着你必须在同一个 webapp 中。

或者,将您的 jar 加载到 TOMCAT_HOME/lib(Tomcat 6 及更高版本)或 TOMCAT_HOME/common/lib。在那里找到的所有 jar 对所有类加载器都是可见的。

关于java - Tomcat 应用程序正在从一个 jar 加载它的所有代码 - 它说在哪里使用那个 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204216/

相关文章:

java - Jenkins ssh-node 找不到 Java

web-services - wsdl 2 java : deploy a web service with apache cxf

url-rewriting - UrlRewriteFilter 正在更改我的 Web 应用程序的上下文路径

eclipse - 在 Spring webapp 中处理 MaxUploadSizeExceededException

java - 在一台机器上有两个 webapps 每个都在不同的 servlet 容器上比两个都在同一个容器上是不是很糟糕?

java - OracleDataSource、Oracle UCP、Commons DBCP 和 Tomcat 连接池之间的区别?

java - 实用程序员的练习 19

java - 什么数据结构可以容纳以下数据?

java.sql.SQLException : near "on": syntax error problem

java - 如何在java中为SimpleDateFormat应用applyPattern?