如何在播放项目中单独编写客户端和服务器代码?

时间:2012-03-09 10:40:21

标签: java gwt client-server playn

正常的GWT项目有客户端代码和服务器代码。我想在同一个playN项目中编写单独的客户端和服务器代码。当我编译当前项目时,我得到错误,例如,找不到模块,java.lang.Thread ,因为GWT客户端代码不支持它。对于我的项目,我需要添加很多服务器代码,我需要完整的Java包。

主要问题是,我有自己的库,里面装满了服务器端代码,当我添加库时,我遇到了这个问题。

如何将客户端代码和服务器代码分开,以免它给我一个上面提到的错误?如果我们可以分离客户端和服务器代码,有没有办法只为服务器端代码添加库?

提前致谢..

1 个答案:

答案 0 :(得分:0)

我不知道PlayN,但是在GWT中你定义了使用

为客户端编译的路径
<source path='client' />
<。>在.gwt.xml文件中。模块文件文件夹下的其他路径被编译为服务器端代码。

为了更全面地理解你的问题,我git-cloned播放样本showcase,然后我看一下文件层次结构(GWT部分详细说明)。

showcase/
   android/
      ...
   core/
      ...
   flash/
      ...
   html/
      src/
         main/
            java/
               playn/
                  showcase/
                     html/
                        ShowcaseHtml.java
                     Showcase.gwt.xml
            webapp/
               WEB-INF/
                  web.xml
               Showcase.html
      pom.xml
   ios/
     ...
   java/
     ...
   build.xml
   pom.xml

我们可以看到 html / src / main / java / playn / showcase / Showcase.gwt.xml 并排 html / src / main / java / playn / showcase / html 文件夹。

这是Showcase.gwt.xml内容:

<module rename-to='showcase'>
  <inherits name='playn.PlayN'/>
  <!-- for the peas sample -->
  <inherits name="org.jbox2d.GwtBox2D" />
  <!-- for the menu UI -->
  <inherits name='tripleplay.TriplePlay'/>
  <!-- for enhanced logging -->
  <inherits name="playn.logging.Enhanced" />

  <source path='core'/>
  <source path='html'/>

  <public path="resources" />

  <entry-point class='playn.showcase.html.ShowcaseHtml'/>
</module>

至于我的经验,如果存在包含代码的 html / src / main / java / playn / showcase / 服务器 文件夹,并且没有参考来自其他代码的代码,必须由GWT编译器来避免。然后使用maven,如果声明适当,它可以编译。