繁体   English   中英

GWT - 将外部Java类添加到客户端项目

[英]GWT - adding external java classes to client project

我有一个GWT项目。 客户端代码位于“客户端”目录中。 我想附加外部目录中的外部java类(主要是普通的POJO DTO类)。 如何配置gwt.xml文件?

我得到这种错误:

[错误]'文件中的错误:/ C:/development/projects/CodeSpaces/LocateMe/LocateMeWeb/src/com/dominolog/locateme/client/LocateMeWeb.java'[错误]第56行:没有源代码可用于类型com .dominolog.locateme.model.dto.LocationInfo; 你忘了继承一个必需的模块吗?

如果你有java源文件,你只需要将目录添加到.gwt.xml文件中。 例如,如果您有一个名为shared的子目录,您将添加以下行:

<source path='shared'/>

名为shared的文件夹必须是主程序包下的一个级别。 因此,如果您将项目.gwt.xml文件放在com.yourdomain.project,那么共享文件夹.package将是com.yourdomain.project.shared。 请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModules上的“ 源路径”部分

如果您没有源代码并且只有类,则必须按照Hilbrand的说明导入模块。

这是另一个有效的解决方案http://www.gordonizer.com/2012/01/referencing-third-party-library-source.html

我做空(以防这个链接有一天也无效):

  • 假设包含要添加的类的外部包是com.foo.bar.bat
  • 在您的项目中,您创建包com.foo.bar (没有子包bat )。
  • 在新包中,您将创建一个新的GWT模块文件Foo.gwt.xml ,其内容类似于

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

    (为了便于阅读,我省略了XML标题)

  • 最后使用inherit标记将此新模块添加到主GWT模块:

    <inherits name="com.foo.bar.Foo"/>

GWT要使用的任何Java类都必须具有模块文件,并且符合包含子包的包结构。 有关更多详细信息,请参阅此stackoverflow答案: 将Java包添加到GWT 在这种情况下,可以在包含以下内容的com.dominolog.locateme.model目录中创建模块文件(例如model.gwt.xml ):

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

在主模块文件中添加对此模块文件的引用,然后GWT将获取com.dominolog.locateme.model.dto包中的所有类。

2注意事项:

  1. GWT将查看目录(和子目录)中的所有类

  2. 包中的类必须存在于源文件中,并且可能不包含对GWT无法解析的其他库的任何引用(当使用引用特定数据库用法的dto类注释时,这可能是一个限制)。

更新:重写的答案更具体。

我会尝试更具体。 我的工作区结构是:工作区

  1. LocateMeModel
  2. LocateMeServer
  3. LocateMeMobile
  4. LocateMeWeb

LocateMeWeb是一个具有标准项目布局的GWT应用程序。 在LocateMeModel中,我有Java类,它们定义了LocateMeWeb,LocateMeMobile和LocateMeServer常用的dto(数据传输对象)。 因此,我需要GWT从此目录(LocateMeModel)获取文件并将其编译为客户端代码。 有可能吗? 从我看到GWT只允许代码必须在GWT项目的客户端目录下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM