【问题标题】:Referencing An Eclipse Java Project from a GWT Project从 GWT 项目引用 Eclipse Java 项目
【发布时间】:2012-09-11 13:55:52
【问题描述】:

我已经在 eclipse 中有一个 java 项目,我需要在我的 GWT 项目的 server 代码中使用那里的类,也在 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中定义的类

知道我做错了什么吗?

【问题讨论】:

    标签: java eclipse gwt


    【解决方案1】:

    如果您只想引用在服务器端使用的类(即实际上不是通过 GWT),那么您不需要所有这些东西。 GWT 模块仅涉及要由 DevMode 处理并最终由 GWT 编译器处理的客户端代码。

    【讨论】:

    • 谢谢。但是知道为什么我会遇到 NoClassDefFoundError 问题,因为 GWT 项目配置为在其构建路径中包含原始 Java 项目。
    【解决方案2】:

    我有一个类似的项目设置,除了我使用的是 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,它没有上述解决方法。您可以查看上述警告消息here中提到的信息。

    总而言之,它是这样说的;

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2017-12-25
      相关资源
      最近更新 更多