SEAM GWT Intégration
-
01-10-2019 - |
Question
Je suis en train d'intégrer GWT avec SEAM. J'ai suivi les Docs et essayé pour exécuter le
exemple suivant que.
-
J'ai créé un projet GWT, en utilisant Eclipse Galileo et créé les classes comme indiqué dans l'exemple
-
J'ai ensuite ajouté les pots Seam 2.0.2 sur le chemin de construction
-
Je compilé l'application, en utilisant Google GWT compilateur à l'aide de l'interface utilisateur d'Eclipse.
-
Enfin j'ai couru l'application.
D'abord, je voudrais savoir si les étapes ci-dessus sont corrects. Après l'exécution de l'application que je ne reçois pas le résultat souhaité.
Aussi est-ce la seule façon d'intégrer GWT avec Seam?
Mise à jour
J'ai eu cet exemple en cours d'exécution à l'aide de fourmis. Mais le but de mon exercice sera de fonctionner via Eclipse ui.
Je créé mon propre projet par nom GWTTest et a essayé de recréer l'exemple dans l'Eclipse
UI. Il y a quelques petites choses que j'ai remarqué. GWT Compile via l'interface utilisateur Eclipse crée un répertoire par nom gwttest dans le fichier de guerre. Où que la structure du répertoire créé par la fourmi est différent.
Dans l'exemple il y a un morceau de code dans les fonctions AskQuestionWidget GetService comme suit
String endpointURL = GWT.getModuleBaseURL() + "seam/resource/gwt";
Comment puis-je modifier ce code en fonction de ma structure de répertoire?
La solution
Nous utilisons la couture + richfaces + GWT et cela fonctionne très bien. Bien que nous construisons tout avec Maven, je suppose que vous pouvez utiliser fourmi aussi bien. L'idée générale est de commencer toute application web en mode développement GWT. Vous n'avez pas de tout compiler (qui prend beaucoup de temps en cas de compilateur GWT). Mode de développement compilerons les ressources demandées à la demande. Par l'application GWT en cours d'exécution de cette façon, vous pouvez également déboguer le code côté client.
Il est également possible d'appeler des méthodes GWT en réponse aux actions de couture.
Mise à jour:
Je peux élaborer sur notre solution un peu:
Maven
Votre projet doit être configuré avec packaging: war
. Il y a quelques instructions officielles sur le réglage de couture avec Maven (également 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
Pour GWT ajouter des sections suivantes à votre 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>
Cette configuration devrait produire à la fois la guerre - couture et GWT compilé. Si vous souhaitez utiliser ce projet en mode de développement mis également dans ce pom.xml
:
<dependency>
<groupId>com.xemantic.tadedon</groupId>
<artifactId>tadedon-gwt-dev</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Et ajouter -server com.xemantic.tadedon.gwt.dev.JettyLauncher
à votre lanceur d'applications Web de Google. Ce Maven est lance jetée amical qui pourrait être nécessaire dans certaines situations.
J'espère que cela vous aidera. Vous êtes intéressé par la communication entre GWT et richfacaes demande?
Autres conseils
Si vous voulez, jetez un oeil à
ant
Ici va son fichier readme.txt
Vous pouvez voir l'exemple à: http: // localhost: 8080 / coutures helloworld / org.jboss.seam.example.remoting.gwt.HelloWorld / HelloWorld.html
GWT: Si vous voulez reconstruire l'extrémité avant GWT, vous devez télécharger GWT et build.properties configure pour pointer vers elle . Vous pouvez ensuite exécuter « fourmi GWT décompiler » de ce répertoire. Il est pré-construit par défaut. Si vous voulez utiliser le mode hébergé GWT , eh bien, lire tous les documents des GWT!