GWT uses an embedded Jetty server. It is used at the beginning of the development of an application. During the prototype phase.
Personally, I used it for about a year, until we got the need to use JMS.
And since Jetty is not a Java EE server – it does not implement the JMS API – it was time to say goodbye to Jetty and use the application server that is used in production : Jonas.
There is not much info about the configuration to use in order to launch the hosted mode with a server different from Jetty. I found that the official website of the gwt-maven-plugin lacks information in that area.
I spent a few hours finding out the correct configuration for that. So here is how to do it :
1) Start Jonas
2) Deploy the application (EAR or WAR)
3) Run the goal gwt:run
And the configuration for the gwt-maven-plugin plugin is the following :
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>gwt-maven-plugin</artifactId> <!-- Old configuration, to run the hosted mode with JETTY. --> <!-- <configuration> <runTarget>identify.html</runTarget> <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp> <modules> <module>${project.groupId}.foo.bla.MainApplication</module> <module>${project.groupId}.foo.bla.SecondEntry</module> </modules> <copyWebapp>true</copyWebapp> <extraJvmArgs>-XX:MaxPermSize=512M -Xms512M -Xmx1024M </extraJvmArgs> </configuration> --> <!-- New configuration, to run the hosted mode with JONAS --> <configuration> <modules> <module>${project.groupId}.foo.bla.MainApplication</module> <module>${project.groupId}.foo.bla.SecondEntry</module> </modules> <extraJvmArgs>-XX:MaxPermSize=512M -Xms512M -Xmx1024M </extraJvmArgs> <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> <runTarget>http://localhost:9000/app-context/main.html</runTarget> <copyWebapp>false</copyWebapp> <!-- do not start JETTY --> <noServer>true</noServer> <!-- the folder where the exploded WAR is located, inside Jonas --> <!-- Constant path if jonas.development=false in conf/jonas.properties --> <hostedWebapp>${env.JONAS_BASE}\work\webapps\jonas\ear\myapp-ear-SNAPSHOT.ear\${project.build.finalName}.war</hostedWebapp> <bindAddress>localhost</bindAddress> <!-- other possible value : 0.0.0.0 --> <logLevel>INFO</logLevel> <style>OBF</style> </configuration> <executions> <execution> <id>gwtcompile</id> <phase>prepare-package</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> ... </plugins>
Line 35 is the most important : it specifies the path where the exploded war is deployed in Jonas.
That configuration could work with another application server of course.
You must be logged in to post a comment.