有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

xml GWT向客户端项目添加外部java类

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

我会遇到这样的错误:

“文件:/C:/development/projects/codespace/LocateMe/LocateMeWeb/src/com/dominolog/LocateMe/client/LocateMeWeb中的[ERROR]错误。爪哇的 [错误]第56行:没有可用于com类型的源代码。多米诺日志。定位我。模型dto。位置信息;您是否忘记继承所需的模块


共 (4) 个答案

  1. # 1 楼答案

    我会尽量说得更具体一些。我的工作区结构是: 工作空间

    1. 地点记忆模型
    2. LocatMeserver
    3. 定位记忆胆汁
    4. LocateMeWeb

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

  2. # 2 楼答案

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

    <source path='shared'/>
    

    名为shared的文件夹必须位于主包下的一个级别。所以,如果你的项目。gwt。xml文件位于com。你的领域。投影共享文件夹。包将是com。你的领域。项目共享。请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideModules中的源路径部分

    如果您没有源代码,只有类,那么您必须按照Hilbrand所述导入模块

  3. # 3 楼答案

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

    I short(以防万一有一天这个链接也会失效):

    • 假设包含要添加的类的外部包是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"/>

  4. # 4 楼答案

    GWT使用的任何Java类都必须有一个模块文件,并符合包含子包的包结构。有关更多详细信息,请参阅此stackoverflow答案:Adding Java packages to 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类中使用引用特定数据库用法的注释时,这可能是一个限制)

    更新:将答案改写为更具体的答案