我有一个GWT项目,我想在另一个项目中使用服务器端的一些类:
MyServerProject
com.me.myserverproject.server.Horse
SomeSupportProject
com.me.somesupportproject.server.Animal
和MyServerProject Horse.java看起来像:
class Horse extends Animal {
}
在eclipse中,我有MyServerProject引用SomeSupportProject项目。所有编译都很好,GWT Compile运行正常,没有错误。
当我将MyServerProject部署到本地实例时,它会立即在“Animal.java”上抛出NoClassDefFoundError错误:
java.lang.NoClassDefFoundError: com/me/somesupportproject/server/Animal
at java.lang.ClassLoader.defineClass1(Native Method)
我将SomeSupportProject标记为在eclipse项目属性中导出。但似乎Animal.java的类文件在部署时没有导出。我们是否需要在这里做一些特别的工作来实现这一目标?
我必须遗漏一些非常明显的东西,因为这是非常基本的东西。我有客户端java文件被引用很好,我认为这是更棘手的情况。但这些都是服务器端类,认为它会更简单,
由于
-------更新:项目设置---------------
关于我的环境的一些注意事项:
使用eclipse,这两个项目是并排的。我没有使用Ant或Maven。我将eclipse设置为自动构建,因此不会出现任何编译器错误。为了实际编译部署,我尝试右键单击“MyServerProject”,选择Google - > GWT编译。我将输出设置为“全部”。我没有得到任何编译错误。输出没有提到任何警告。
GWT编译完成后,我再次右键单击该项目,选择Run As - > Web应用程序。这就是抛出SomeSupportProject项目中找到的类的java.lang.NoClassDefFoundError。
如果有任何细节可以让我知道。
---------最终更新:解决了-----------------
在进行了更多工作之后,我们似乎无法添加项目引用并在部署的顶级项目中获得服务器端类。相反,我链接到SomeSupportProject中的“src”文件夹。这样事情仍然可以正常编译,但是在部署项目时,所有类都没有问题。
所以这真的是一个应用引擎问题,应该在那里标记它。
谢谢!
答案 0 :(得分:0)
在进行了更多工作之后,我们似乎无法添加项目引用并在部署的顶级项目中获得服务器端类。相反,我链接到SomeSupportProject中的“src”文件夹。这样事情仍然可以正常编译,但是在部署项目时,所有类都没有问题。
所以这真的是一个应用引擎问题,应该在那里标记它。
谢谢!