将Java包添加到GWT

我已经尝试搜索,但无法想出如何将自己的包添加到GWT项目中的定义方式.

我的树结构如下所示:

-com.mycompany
  -public
    MyApplication.html
  MyApplication.gwt.xml


-com.mycompany.client
  MyApp.java

-com.mycompany.gui
  TableLayout.java

我在那里看到的答案是说,相对于gwt.xml文件的根目录添加包,像这样:

<module>
  <inherits name="com.google.gwt.user.User" />
  <entry-point class="com.mycompany.client.MyApp" />
  <source path="client" />
  <source path="gui" />
</module>

然后抱怨:

Unable to find type 'com.technicon.client.MyApp'
   Hint: PrevIoUs compiler errors may have made this type unavailable
   Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

任何人都可以告诉我我在做错什么,如何解决这个问题?

解决方法

您可以摆脱两条源路径行,因为认情况下,GWT将拾取与根相关的任何内容,以及客户端包中的内容.您还需要将您的gui软件包移动到您的客户端软件包中,这将成为:
-com.mycompany
  -public
    MyApplication.html
  MyApplication.gwt.xml


-com.mycompany.client
  MyApp.java

-com.mycompany.client.gui
  TableLayout.java


<module>
  <inherits name="com.google.gwt.user.User" />
  <entry-point class="com.mycompany.client.MyApp" />
</module>

假设你的MyApp.java是一个实际的EntryPoint,那么这应该是正常的.

另外需要注意的是,您不能使用不属于GWT JRE Emulation库的java类,如果您这样做,您的项目将无法编译.你应该得到非常具体的错误.例如,如果没有模拟它们,就不能使用像java.math.BigDecimal这样的库类.您创建的所有自己的类都可以使用.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量