在已部署的应用程序上使用枚举时出现NoClassDefFoundError

时间:2014-06-01 20:16:39

标签: java google-app-engine servlets enums noclassdeffounderror

我的主要内容中有一个枚举Provider'项目。在我的服务器项目中(使用Servlets和Google App Engine),我已经链接到了这个项目。我可以在我的Server项目中使用这个主项目中的类,但是当从我的Enum访问值时,我得到:

java.lang.NoClassDefFoundError: gamemain/network/Provider  

当我运行服务器项目然后使用枚举时,我得到了这个。为什么这只是这个枚举而不是其他类?我该怎么办呢?


编辑: 我已经解决了#39;它通过手动将Provider.java文件从主项目复制到服务器项目中。然而,这不是解决问题的方法,而是一种黑客攻击,因为我现在必须保留2份副本。我还在寻找这个问题的答案:为什么要导出所有类,而不是我的枚举(导致NoClassDefFoundError)?

1 个答案:

答案 0 :(得分:0)

不幸的是,链接项目还不够。您必须将在服务器端(或整个项目,如果它不是太大)上使用的类导出到.jar,并将其添加到war/WEB-INF/lib目录。否则它们将无法用于App Engine实例。