2010-09-08 5 views
2

Я пытаюсь интегрировать GWT с SEAM. i последовал за Docs и попытался запуститьИнтеграция SEAM GWT

пример следующим образом.

  1. Я создал проект GWT, используя Eclipse, Galileo и создали классы, как указано в примере

  2. Затем я добавил Seam 2.0.2 банки в путь сборки

  3. Я скомпилировал приложение, используя Google GWT Compiler, используя интерфейс eclipse.

  4. И наконец я запустил приложение.

Сначала я хотел бы узнать, правильны ли указанные шаги. После запуска приложения я не получаю желаемого результата.

Также это единственный способ интегрировать GWT с Seam?

Update

У меня этот пример работает с использованием муравья. Но цель моего упражнения - запустить его через eclipse ui.

Я создал свой собственный проект по имени GWTTest и попытался воссоздать пример в Eclipse,

UI. Есть несколько вещей, которые я заметил. Компиляция GWT через интерфейс Eclipse создает каталог по имени gwttest внутри файла войны. Если структура каталогов, созданная муравьем, отличается.

В примере есть кусок кода в функции AskQuestionWidget GetService следующего

String endpointURL = GWT.getModuleBaseURL() + "seam/resource/gwt"; 

Как изменить этот код, чтобы удовлетворить свою структуру каталогов?

ответ

2

Мы используем шов + богатые поверхности + gwt, и он работает очень хорошо. Хотя мы строим все с maven, я полагаю, вы также можете использовать муравья. Общая идея - запустить все веб-приложение в режиме разработки GWT.Вам не нужно компилировать все (что занимает много времени в случае компилятора GWT). Режим разработки будет компилировать запрошенные ресурсы по требованию. Запустив приложение GWT таким образом, вы также можете отлаживать код на стороне клиента.

Также можно вызвать методы GWT в ответ на действия шва.

Update:

я могу уточнить наше решение немного:

Maven

Вашего проект должен быть настроен с packaging: war. Есть некоторые официальные инструкции по настройке шва с мавена (также RichFaces):

http://docs.jboss.org/seam/2.2.1.CR2/reference/en-US/html/dependencies.html#d0e34791

http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/SettingsForDifferentEnvironments.html

Для GWT добавить следующие разделы к вашему pom.xml:

<dependency> 
    <groupId>com.google.gwt</groupId> 
    <artifactId>gwt-user</artifactId> 
    <version>2.1.0</version> 
    <scope>provided</scope> <!-- prevents from including this in war --> 
</dependency> 
<dependency> 
    <groupId>com.google.gwt</groupId> 
    <artifactId>gwt-dev</artifactId> 
    <version>2.1.0</version> 
    <scope>provided</scope> <!-- prevents from including this in war --> 
</dependency> 
<dependency> 
    <groupId>pl.ncdc.gwt</groupId> 
    <artifactId>gwt-servlet-war</artifactId> 
    <version>2.1.0</version> 
    <type>war</type> <!-- adds gwt-servlet.jar to your war, but not to your classpath --> 
</dependency> 

<!-- build section --> 
<build> 
    <resources> 
    <resource> 
     <directory>src/main/resources</directory> 
    </resource> 
    <resource> 
     <directory>src/main/java</directory> 
     <includes> 
     <include>**/client/**/*.java</include> 
     <include>**/client/**/*.properties</include> 
     <include>**/shared/**/*.java</include> 
     <include>**/shared/**/*.properties</include> 
     <include>**/*.gwt.xml</include> 
     </includes> 
    </resource> 
    </resources> 
    <testResources> 
    <testResource> 
     <directory>src/test/java</directory> 
     <includes> 
     <include>**/client/**/*.java</include> 
     <include>**/client/**/*.properties</include> 
     <include>**/shared/**/*.java</include> 
     <include>**/shared/**/*.properties</include> 
     <include>**/*.gwt.xml</include> 
     </includes> 
    </testResource> 
    </testResources> 
<plugins> 
    <plugin> <!-- dirty hack for GWT issue #3439 - it is not really fixed --> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>remove-javax</id> 
     <phase>compile</phase> 
     <configuration> 
      <tasks> 
      <delete dir="${project.build.directory}/classes/javax" /> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <version>1.3.2.google</version> 
    <configuration> 
     <extraJvmArgs>-Xmx512M</extraJvmArgs> 
     <gwtVersion>${gwt.version}</gwtVersion> 
     <modules> 
     <module>com.company.gwt.project.module.Module</module> 
     </modules> 
     <soyc>false</soyc> 
     <draftCompile>${gwt.draft.compile}</draftCompile> <!-- you can control this with profiles --> 
     <localWorkers>2</localWorkers><!-- in theory should speed things up on our quad CPU hudson --> 
     <style>${gwt.style}</style> <!-- you can control this with profiles --> 
    </configuration> 
    <executions> 
     <execution> 
     <id>compile</id> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>compile</goal> 
     </goals> 
     </execution> 
     <execution> 
     <id>gwt-test</id> 
     <phase>integration-test</phase> 
     <goals> 
      <goal>test</goal> 
     </goals> 
     <configuration> 
      <includes>**/*GwtTestSuite.java</includes> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
     <warSourceDirectory>src/main/webapp-empty</warSourceDirectory> <!-- just empty dir for workaround --> 
     <webResources> 
     <resource> 
      <directory>src/main/webapp</directory> 
      <excludes> 
      <exclude>app.*</exclude> <!-- name of you gwt module(s) - rename-to in gwt.xml --> 
      <exclude>WEB-INF/web.xml</exclude> 
      </excludes> 
     </resource> 
     <resource> 
      <directory>src/main/webapp</directory> 
      <includes> 
      <include>WEB-INF/web.xml</include> 
      </includes> 
      <filtering>true</filtering> 
     </resource> 
     </webResources> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 

Эта конфигурация должна производить войну с обоими - шов и gwt скомпилированы. Если вы хотите использовать такой проект в режиме разработки положить также это в pom.xml:

<dependency> 
    <groupId>com.xemantic.tadedon</groupId> 
    <artifactId>tadedon-gwt-dev</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <scope>provided</scope> 
</dependency> 

И добавить -server com.xemantic.tadedon.gwt.dev.JettyLauncher к вашему Google веб-приложений запуска. Это дружелюбная причальная станция, которая может понадобиться в некоторых ситуациях.

Я надеюсь, что это вам поможет. Вам интересно общение между gwt и richfacaes?

+0

Можете ли вы предоставить мне больше идей о том, как это сделать? это –

+0

@Anand, см. обновление для этой записи – morisil

+0

большое спасибо за обновление вашей информации, но, к сожалению, я не очень хорошо знаком ни с maven, ни с ant. Так что придется читать на них. Спасибо, в любом случае –

0

Если вы хотите, посмотрите на <SEAM_HOME>/примеры/удаленного взаимодействия/GWT. Оттуда, запустить (Убедитесь, что вы установили ANT перед использованием)

ant 

Здесь идет его файл readme.txt

Вы можете просмотреть пример по адресу: http://localhost:8080/seam-helloworld/org.jboss.seam.example.remoting.gwt.HelloWorld/HelloWorld.html

GWT: Если вы хотите перестроить передний конец GWT, вам нужно будет загрузить GWT и настроить build.properties, чтобы указать на него. Затем вы можете запустить «ant gwt-compile» из этого каталога. Он по умолчанию построен по умолчанию. Если вы хотите использовать режим размещения GWT, хорошо, прочитайте все об этом из документов GWT!

+0

Привет, я использовал муравья и построил вышеприведенный пример. Файл readme, похоже, устарел. Я использую шов 2.0.2, gwt 2.0.4, и правильный URL для доступа к этому примеру: http: // localhost: 8080/seam-gwt/HelloWorld.html –

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

  • Нет связанных вопросов^_^