从eclipse部署动态Web应用程序时出现NoClassDefFoundError异常

时间:2009-11-10 13:22:33

标签: java eclipse glassfish

我在Eclipse gallileo中有一个小型动态Web项目,它引用了另一个项目。当我将项目部署到Glassfish v2.1时,只要我尝试实例化位于另一个项目中的类,我就会得到一个NoClassDefFoundError。我无法弄清楚我缺少什么设置以确保引用的项目也与它一起部署。

5 个答案:

答案 0 :(得分:2)

项目属性 - > Java EE模块依赖项 - 检查它将部署在WEB-INF / lib文件夹中的所需项目。

答案 1 :(得分:2)

显然我遇到了Eclipse的问题。我的工作区中有一些项目,我从当前工作区以外的其他位置导入了当前项目。将该项目移动到我的工作区可以解决问题。

答案 2 :(得分:0)

在引用的项目中,您是要导出所需类的包吗?

答案 3 :(得分:0)

在构建WAR文件时,将引用项目中的jar文件包含在项目中。 右键单击您的项目并选择“构建路径”,然后选择“配置构建路径”,现在应该打开项目的属性窗口。从那里单击“Java EE Module Dependencies”,您可以添加从其他项目构建的jar文件,并在构建WAR文件时,该jar文件将包含在WAR文件中,这将允许您使用其他项目中的类。

答案 4 :(得分:0)

在WAR文件的清单中包含类似

的条目
/lib/dependent.jar

然后确保dependent.jar被复制到WAR内的/lib文件夹中。默认情况下Eclipse不会这样做,这就是大多数商店使用ANT来构建WAR / EAR文件的原因。

如果您不想弄乱MANIFEST文件,则必须将dependent.jar复制到目标服务器上的某个位置,然后修改应用程序的CLASSPATH以包含“lib-jar-folder / dependent”。罐”。