【问题标题】:Inherit external java source in GWT project在 GWT 项目中继承外部 java 源
【发布时间】:2012-10-02 10:07:00
【问题描述】:

我有一个在服务器端使用的 ENUM。 我也希望能够在客户端 (GWT) 上使用此枚举。

这是结构:

se.mycompany.core
se.mycompany.core.TheEnum <-- this Enum.

se.mycomapny.web.gwtproject <-- The GWT project.
se.mycomapny.web.gwtproject.client

我已经尝试添加

<inherits name="se.mycompany.core.TheEnum"/>

到我的 gwtproject.gwt.xml 文件。但我收到以下错误消息:

[错误] 无法在您的类路径中找到“se/mycompany/core/TheEnum.gwt.xml”;可能是拼写错误,或者您忘记包含源的类路径条目?

我已尝试使用以下上下文将文件 TheEnum.gwt.xml 添加到“se/mycompany/core/”。

<module>
  <inherits name='com.google.gwt.user.User'/>
  <source path="TheEnum"></source>
</module> 

但它仍然抱怨同样的事情。

我猜我需要以某种方式将 se.mycompany.core.TheEnum 添加到 build.xml 中的类路径中,但我不知道如何或在哪里。

【问题讨论】:

    标签: java gwt inheritance


    【解决方案1】:

    “继承”标签用于导入其他模块,而不是单个类。您可以通过在 core 包下创建一个简单的 GWT 模块来实现您想要的,然后在现有模块中继承该模块:

    在包se.mycompany.core下创建一个名为Core.gwt.xml的文件,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <module>
        <source path="" includes="TheEnum.java"/>    
    </module>
    

    然后在您现有的模块中添加:

    <inherits name='se.mycompany.core.Core'/>
    

    【讨论】:

    • 仍然收到“无法在您的类路径上找到 'se/mycompany/core/Core.gwt.xml';可能是拼写错误,或者您忘记包含源的类路径条目?”
    • 仔细检查你的文件路径和包名。我已经多次使用类似的设置,它对我有用。
    • 如果您使用 maven 将 *.gwt.xml 文件编译到 jar 中,您可能会发现 jar 缺少 xml 文件。请参阅以下线程以获取修复:stackoverflow.com/questions/9798955/…
    • 除了大卫的回答之外,请绝对确保您的 jar 包含 .java 文件。 GWT 需要将 .java 文件转换为 javascript。我的 jar 最初不包含这些文件,我会看到错误:'No source code is available for type ;你忘了继承一个必需的模块吗?即使 gwt 能够看到我的 gwt.xml 文件。强制 maven 将 .java 文件保留在我的 jar 中解决了这个问题。
    【解决方案2】:

    最好在客户端包中添加枚举,即“se.mycomapny.web.gwtproject.client”。从服务器端你可以使用客户端包中的这个枚举。

    你仍然希望它只在服务器端,创建一个包“se.mycompany.core.shared”,在包“se.mycompany.core”中创建Core.gwt.xml。

    Core.gwt.xml:

    <module>
    <source path="shared"/>
    </module>
    

    现在在包“se.mycompany.core.shared”中创建 TheEnum.java。在你的主 gwt.xml 文件中写下一行,

    <inherits name='se.mycompany.core.Core'/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2014-11-29
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多