我有两个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)如何解决此问题,以便依从性处理依赖项?
该Java Build Path控制编译类路径的时候,但你需要使用还配置部署Deployment Assembly您的属性页Dynamic Web Project。毕竟,您可能已经添加了一个API jar来编译您的项目,当您最终部署该项目时,它可以作为服务器运行时的一部分使用;或者,例如,您必须使用另一个必须打包为jar的项目,并将其打包到您的Web应用程序中要在运行时使用的WEB- INF / lib文件夹。
Java Build Path
Deployment Assembly
Dynamic Web Project
部署大会新的和值得注意的