2015-02-17 36 views
0

我有一个Java EE Web项目部署和运行良好(PROJECT1)..的NoClassDefFoundError为Tomcat的servlet

我创建另一个项目(项目2)和Web部署大会增加PROJECT1 ..

我能访问PROJECT1没有编译时错误定义的所有类..

在运行的项目,它提供了对PROJECT1类的运行时错误一样的NoClassDefFoundError ..

难道我做错了什么?

+0

这有可能吗?一个.war文件包含libs下的另一个.war文件...它会正确引用它吗?因为它没有做? – Awesome 2015-02-18 08:07:24

回答

1

看起来project1在project2类路径中不存在。尝试将project1编译为jar(我现在假设它是一个.war),并将jar放在classpath中。

War文件不是库文件,因为jars是。他们具有将webapp打包在一个可分发文件中的特定目的。你的IDE显然足够聪明,可以进入战争,但这不是一个规则。

IMO最好能做的就是创建另一个项目,把所有的共享类打包成jar(比如project3.jar)。然后,将project3作为project1project2的依赖关系,并且您将拥有一个清晰易读的结构。

+0

不知道你的意思是通过更新类路径..我已经把路径“WEB-INF/lib/project1.war”中的project1放在Web部署程序集中。 – Awesome 2015-02-18 08:05:39

+1

请参阅我的更新。 – ptrk 2015-02-18 08:28:22

+0

确定一些进展..它可以引用project3中的共享类。但是包含在project3中的罐子不可用? – Awesome 2015-02-18 10:20:09