当前位置: 首页 > 面试题库 >

在Java Web应用程序中从库JAR覆盖类文件

任小云
2023-03-14
问题内容

在我的Java Web应用程序中,我具有以下文件:

/WEB-INF/classes/com/example/Foo.class
/WEB-INF/lib/example.jar <-- contains the class "com.example.Foo"

是否将classes使用目录中定义的类而不是目录中定义的类example.jar

谢谢。


问题答案:

答案取决于您的容器,它取决于容器。通常,/ WEB-INF / classes优先于WEB-INF / lib中的jar文件中的类。

对于Tomcat,顺序如下:

因此,从Web应用程序的角度来看,类或资源的加载按以下顺序查找以下存储库:

  1. JVM的Bootstrap类
  2. 系统类加载器类
  3. / WEB-INF /您的网络应用程序类
  4. Web应用程序的/WEB-INF/lib/*.jar
  5. 普通类加载器类

但是,如果您使用的是其他容器,则需要查阅该服务器的文档。



 类似资料:
  • Jacoco代码覆盖率报告还包括“系统路径jar”中的类,我在maven依赖项下面添加了这些类 我试图排除这个罐子的文件从Jacoco插件像这样: 但这种排斥并不奏效。它仍在显示jar中包含的文件的覆盖率报告。如图所示,文件位于org中。阿帕克。和组织。克洛布斯。报道中不应该有包裹。

  • 我正在尝试在外部tomcat上运行camel应用程序。有2个应用程序。属性文件存在于我的项目中,一个在src/main/resources下,另一个在src/test/resources下。当我使用maven install命令创建war文件时,它使用应用程序。来自src/main/resources的属性文件(这是必需的),但当我在eclipse中使用tomcat启动应用程序时,它正在使用app

  • 有一款Spring Boot 2 app就是这样的结构: 此外,模块1依赖于模块2,在pom.xml部分中指定。 谢谢你!

  • 当我使用 在intelij运行期间,一切正常。 在jar的案例中,我尝试了: 等等。它们导致正确的路径,例如: > 文件:/D:/Projects/myProject/target/classes/static/assets/config/fileName(对于toExternalForm) /D: /Projects/myProject/target/classes/static/assets/

  • 我正在开发一个使用Hibernate的简单JSF应用程序。我将所有必需的库导入WEB-INF/lib文件夹,并将它们指向类路径。但是当我尝试编译它时,我遇到了错误: 这是我创建SessionFactory并使用它的代码: 我在这里使用它: 那我做错了什么?我该怎么解决这个问题?

  • "app-login\pom.xml" “应用程序登录客户端\pom.xml” “应用程序登录服务器\pom.xml” "app-login-share\pom.xml" 在最后一分钟,我看到“lib-resource”项目位于“lib-bloated”下,请在下面的“lib-bloated\pom.xml”中找到它 提前谢谢。