2012-03-09 2 views
0

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

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

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

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

ответ

0

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

<source path='client' /> 

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

Чтобы понять вашу проблему более полно, я git-клонировал образец игры 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/главная/Java/playn/витрина/Showcase.gwt.xml бок о бок с HTML/SRC/главная/Java/playn/витрина/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/главная/Java/playn/витрина/сервера папку с кодом в он, и никакая ссылка на этот код от другого кода, его следует избегать компилятором GWT. Затем с maven он может быть скомпилирован, если объявлен соответствующим образом.

+0

Привет, in playN также в HTML-версии проекта, у нас есть файл gwt.xml. то, что мы делаем, это добавить путь к корневой папке с разными путями пакетов как . например, Rockcollins

+0

для одного проекта playN у вас будут проекты типа projectName, projectName-core, projectName-android, projectName-java, projectName-html. У нас будет этот проектName.gwt.xml в html-версии. – Rockcollins

+0

ОК, как я понимаю, у вас есть projectName-html/папка, содержащая projectName.gwt.xml с < source path = "view" /> директива. Что произойдет, если вы создадите сервер папок в файле projectName-html/и поместите в него код сервера? (без добавления каких-либо вообще) – Nicocube

Смежные вопросы