1

所以我在 Eclipse 中有一个常规的 Java 项目 IRBenchmarker,我在其中定义了几个类,其中一个是枚举 edu.mit.ll.irbenchmark.EvaluationMetric。现在我正在编写一个 Google Web Toolkit Eclipse 项目 IRBenchmarker-WebGUI,我希望客户端将一个 EvaluationMetric 值作为参数传递给服务器上的服务。

我已按照Eclipse 3.4 GWT 1.6 项目中的说明进行操作 - 如何引用其他项目的源代码?但一定是做错了什么。这就是我的设置方式。

workspace
-- IRBenchmarker-WebGUI
   -- src
      -- edu.mit.ll.irbenchmark
         -- IRBenchmarker_WebGUI.gwt.xml
-- IRBenchmarker
   -- src
      -- edu.mit.ll.irbenchmark
         -- IRBenchmarker.gwt.xml
      -- edu.mit.ll.irbenchmark.client
         -- EvaluationMetric.java

文件 IRBenchmarker.gwt.xml 包含:

<?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">
<!--  Expose classes useful to the web client as a Google Web Toolkit module -->
<module rename-to='IRBenchmarker'>
    <inherits name='com.google.gwt.user.User' />
    <source path="client" />
</module>

文件 IRBenchmarker_WebGUI.gwt.xml 包含:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='irbenchmarker_webgui'>
  <!-- Inherit the core Web Toolkit stuff.                        -->
  <inherits name='com.google.gwt.user.User'/>

  <!-- Inherit the default GWT style sheet.  You can change       -->
  <!-- the theme of your GWT application by uncommenting          -->
  <!-- any one of the following lines.                            -->
  <inherits name='com.google.gwt.user.theme.clean.Clean'/>
  <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
  <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

  <!-- Other module inherits                                      -->
  <inherits name="edu.mit.ll.irbenchmark.IRBenchmarker" />

  <!-- Specify the app entry point class.                         -->
  <entry-point class='edu.mit.ll.irbenchmark.client.IRBenchmarker_WebGUI'/>

  <!-- Specify the paths for translatable code                    -->
  <source path='client'/>
  <source path='shared'/>

</module>

IRBenchmarker-WebGUI 的 Eclipse Java 构建路径包含项目 IRBenchmarker。

当我尝试运行项目并在浏览器中打开页面时,我得到

[ERROR] [irbenchmarker_webgui] - Line 124: No source code is available for type edu.mit.ll.irbenchmark.client.EvaluationMetric; did you forget to inherit a required module?

请注意,在此错误上方,在“验证新编译的单元”下有

10:57:15.767 [INFO] [irbenchmarker_webgui] Ignored 3 units with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.

我错过了什么?

更新:所以我继续使用来自 IRBenchmarker 的源代码制作一个 JAR 文件,并将其包含在 IRBenchmarker-WebGUI 中。似乎可以工作,尽管每次我在 IRBenchmarker 中更改代码时都必须重建 jar 是不方便的。

4

2 回答 2

1

您可能必须在DevMode 启动配置的Classpath选项卡中显式添加其他项目的src文件夹。

于 2012-10-26T18:34:05.560 回答
0

试着把

<inherits name="edu.mit.ll.irbenchmark.IRBenchmarker" />

在您的 IRBenchmarker.gwt.xml 中

我在 GWT 中有一个单独的项目来保存我的模型,并且我在两个 GWT.xml 文件中都有该行。

此外,请确保您的根客户端和服务器包与您的项目的文件夹结构匹配,与您的 GWT 项目中的结构完全相同。

于 2012-10-26T18:05:39.370 回答