1

我已经在eclipse中有一个java项目,我需要在我的GWT项目的服务器代码中使用那里的类,也在eclipse中。我有一个包,让我们com.example用很多子包来称呼它。

我按照这里的说明进行操作: Eclipse 3.4 GWT 1.6 project - how to reference source from other projects?通过在根包中定义以下文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='example'>
    <inherits name='com.google.gwt.user.User' />
    <source path="*" />
</module>

在 GWT XML 文件中,我添加了

<inherits name="com.example" />

但我不断得到

java.lang.NoClassDefFoundError

对于定义在com.example

知道我做错了什么吗?

4

2 回答 2

2

If you only want to reference classes for use on the server-side (i.e. not by GWT actually), then you don't need all that stuff. The GWT modules are only about client-side code to be processed by the DevMode and ultimately the GWT Compiler.

于 2012-09-11T13:58:31.960 回答
0

我有一个类似的项目设置,除了我使用的是 get 2.3,它可以正常工作。但我收到如下警告消息;

 [WARN] Server class '<CLASS_IN_OTHER_PROJECT>' could not be found in the web app, but was found on the system classpath
   [WARN] Adding classpath entry 'file:/workspace/<OTHER PROJECT>/src/' to the web app classpath for this session
For additional info see: file:/Downloads/gwt-2.3.0/doc/helpInfo/webAppClassPath.html

可能是您使用的是旧版本的 gwt,它没有上述解决方法。您可以在此处查看上述警告消息中提到的信息。

总而言之,据说;

所有服务器类和依赖项都应该放在你的war目录中:库(jars)应该放在war/WEB-INF/lib/中,不在jars中的类应该放在war/WEB-INF/classes中/。

因此,我想如果您将实用程序项目(服务器端类所依赖的项目)导出为 jar 文件并将其放入模块的 war/WEB-INF/lib/ 文件夹中,您将不会遇到问题。

于 2012-09-11T19:25:12.737 回答