一尘不染

运行时为什么找不到类?

tomcat

我有两个Eclipse项目,项目A和B。项目A是在Eclipse中的Tomcat上运行的JavaEE
Web应用程序。项目B具有一些独立的应用程序代码。我已经将项目B作为项目依赖项添加到项目A的构建路径和Tomcat的类路径(作为用户条目)。

项目A和项目B都有apache commons-
lang-2.6.jar的单独副本,该副本包含StringUtils类。当我运行Tomcat服务器时,一切正常启动。发生请求时,它由项目A中的Servlet处理(导入并使用StringUtils)。然后,它在项目B中调用代码,该项目也使用StringUtils。但是,项目B中的代码给出以下错误:

SEVERE: Servlet.service() for servlet [***Servlet] in context with path [/***] threw exception 
[Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils

显然,已加载StringUtils类供Servlet使用。
1)为什么运行时环境不能找到/使用已经加载的StringUtils执行Project B代码?2)如何解决此问题,以便依从性处理依赖项?


阅读 518

收藏
2020-06-16

共1个答案

一尘不染

Java Build Path控制编译类路径的时候,但你需要使用还配置部署Deployment Assembly您的属性页Dynamic Web Project。毕竟,您可能已经添加了一个API
jar来编译您的项目,当您最终部署该项目时,它可以作为服务器运行时的一部分使用;或者,例如,您必须使用另一个必须打包为jar的项目,并将其打包到您的Web应用程序中要在运行时使用的WEB-
INF / lib文件夹。

部署大会新的和值得注意的

2020-06-16