Java 从eclipse部署动态web应用时出现NoClassDefFoundError异常

Java 从eclipse部署动态web应用时出现NoClassDefFoundError异常,java,eclipse,glassfish,Java,Eclipse,Glassfish,我在Eclipse中有一个小的动态web项目,它引用了另一个项目。当我将我的项目部署到Glassfish v2.1时,只要我尝试实例化位于另一个项目中的类,我就会得到一个NoClassDefFoundError。我无法确定我缺少什么设置来确保引用的项目也与它一起部署。在引用的项目上,是否正在导出所需类所在的包?项目属性->Java EE模块依赖项-检查所需的项目,它将部署在WEB-INF/lib文件夹中。在构建WAR文件时,将引用项目中的jar文件包含在项目中。 右键单击您的项目并选择“构建路径

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

在引用的项目上,是否正在导出所需类所在的包?

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

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

在WAR文件的清单中包括如下项

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


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

显然,我遇到了Eclipse的问题。我的工作区中有几个项目,我从当前工作区之外的其他地方导入了当前项目。将该项目移动到我的工作区修复了问题。

当我进入项目顺序和导出设置时,会选中源文件夹进行导出。这是选中的。仍然找不到类。您能看到服务器上部署了什么吗?你的依赖项目中有jar吗?可能您需要清理/完整构建,然后再次发布整个应用程序。只需添加所需项目已导出所需的包,它位于我正在创建的项目的构建路径上,项目依赖关系也在Java EE依赖关系设置中选中。仍然无法与我的项目一起部署。同样的事情也发生在我身上——删除该工作区中的其他项目,并清理项目,从而解决了这个问题。