Интеграция SEAM GWT - PullRequest
       19

Интеграция SEAM GWT

2 голосов
/ 08 сентября 2010

Я пытаюсь интегрировать GWT с SEAM.Я следовал Документам и пытался запустить пример

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

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

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

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

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

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

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

Обновление

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

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

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

В этом примере в AskQuestionWidget есть фрагмент кода getService, выполняющий следующие функции:

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

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

Ответы [ 2 ]

2 голосов
/ 10 сентября 2010

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

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

Обновление:

Я могу немного рассказать о нашем решении:

Maven

Ваш проект должен быть настроен на packaging: war. Есть несколько официальных инструкций по установке шва с помощью maven (также 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>

Эта конфигурация должна вызывать войну как скомпилированными seam, так и 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 голосов
/ 10 сентября 2010

Если хотите, посмотрите на / Примеры / Remoting / 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!

...