Как написать код клиента и сервера отдельно в проекте playN? - PullRequest
0 голосов
/ 09 марта 2012

Обычные проекты GWT имеют код клиента и код сервера.Я хочу написать отдельный код клиента и сервера в одном проекте playN.Когда я компилирую свой текущий проект, я получаю сообщения об ошибках типа Не удалось найти модуль java.lang.Thread , поскольку он не поддерживается клиентским кодом GWT.Для моего проекта мне нужно добавить много серверного кода и мне нужны полные пакеты Java.

И главная проблема в том, что у меня есть собственная библиотека с полным серверным кодом, и когда я добавляю библиотеку, я получаю эту проблему.

Как я могу разделить клиентский код и серверный код таким образом, чтобы он не выдавал ошибку, подобную упомянутой выше?Если мы можем разделить код клиента и сервера, есть ли способ добавить библиотеку только для кода на стороне сервера?

Заранее спасибо ..

1 Ответ

0 голосов
/ 09 марта 2012

Я не знаю PlayN, но в GWT вы определяете, какой путь должен быть скомпилирован для клиентской стороны, используя

<source path='client' />

внутри вашего файла .gwt.xml.Другие пути в папке с файлами модуля скомпилированы в виде кода на стороне сервера.

Для более полного понимания вашей проблемы я клонировал образец воспроизведения 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 / server с кодомв нем, и нет ссылки на этот код из другого кода , его должен избегать компилятор GWT.Тогда с maven он может быть скомпилирован, если объявлен соответствующим образом.

...