我部署了一个Java EE Web项目,运行正常(project1)..
我创建了另一个项目(project2)并在Web部署程序集中添加了project1。
我能够访问project1中定义的所有类,并且没有编译时错误..
在运行项目时,它会为project1中的类提供类似NoClassDefFoundError的运行时错误。
我做错了吗?
答案 0 :(得分:1)
看起来project2类路径中没有project1。尝试将project1编译为jar(我假设它现在是.war)并将jar放在类路径上。
War
文件不是jars
的库文件。它们具有将webapp打包在一个可分发文件中的特定目的。你的IDE显然足够聪明,可以进入战争,但这不是一个规则。
IMO最好的办法就是创建另一个项目,在这个项目中放置所有共享类并将其打包为jar(比如project3.jar
)。然后,将project3
作为project1
和project2
的依赖关系,您将拥有一个干净,易读的结构。