Thanks Jeff - works great! I updated my blog post with this
information:

http://raibledesigns.com/rd/entry/enhancing_your_gwt_application_with

Cheers,

Matt

On Feb 24, 10:50 am, jgenender <[email protected]> wrote:
> Let me fill in some blanks too before you try...
>
> Here is my index.html file in my webapp directory:
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <html>
> <head>
> <meta http-equiv="REFRESH" content="0;url=MyApp.html">
> </head>
> </html>
>
> Your run target can then be:
>
> <runTarget>index.html</runTarget>
>
> As long as you are running it in noserver mode.
>
> You can also set up the maven war plugin to ignore the MyApp.html and
> use its contents in an index.html file.
>
> On Feb 24, 9:57 am, jgenender <[email protected]> wrote:
>
> > Hi Matt.  You really don't need to do any URLRewriting.  The key here
> > is that the artifacts produced by GWT are relative.  This means that
> > you shouldn't care if you have the package name while running in
> > hosted mode, but your war can have it all w/o the package name.  If
> > you really do want to run in hosted mode w/o the package name, then I
> > would recommend using the jetty maven plugin and use Hosted mode in
> > the noserver configuration.  Here is a quick walk through...
>
> > The secret in the sauce is using the jetty maven plugin's semi-new
> > overlay feature.  This allows you to merge your webapp directory with
> > the GWT output.  Here I am using jetty with HSQL and my module name is
> > com.example.MyApp:
>
> >                     <plugin>
> >                         <groupId>org.mortbay.jetty</groupId>
> >                         <artifactId>maven-jetty-plugin</artifactId>
> >                         <version>6.1.14</version>
> >                         <dependencies>
> >                             <dependency>
> >                                 <groupId>commons-dbcp</groupId>
> >                                 <artifactId>commons-dbcp</artifactId>
> >                                 <version>${commonsDbcpVersion}</
> > version>
> >                             </dependency>
> >                             <dependency>
> >                                 <groupId>commons-pool</groupId>
> >                                 <artifactId>commons-pool</artifactId>
> >                                 <version>${commonsPoolVersion}</
> > version>
> >                             </dependency>
> >                             <dependency>
> >                                 <groupId>hsqldb</groupId>
> >                                 <artifactId>hsqldb</artifactId>
> >                                 <version>${hsqldbVersion}</version>
> >                             </dependency>
> >                         </dependencies>
> >                         <configuration>
> >                                 <webAppConfig>
> >                                 <contextPath>/</contextPath>
> >                                <!--- LOOKY HERE ... THIS IS THE KEY -
> > USING OVERLAYS -->
> >                                 <baseResource
> > implementation="org.mortbay.resource.ResourceCollection">
> >                                         <resourcesAsCSV>${basedir}/src/main/
> > webapp,${basedir}/target/myapp/com.example.MyApp</resourcesAsCSV>
> >                                 </baseResource>
> >                             </webAppConfig>
> >                             <!-- My jetty config - I think you can
> > figure this part out yourself -->
> >                             <jettyConfig>${basedir}/src/test/jetty/
> > hsql/jetty.xml</jettyConfig>
> >                             <scanIntervalSeconds>5</
> > scanIntervalSeconds>
> >                             <scanTargets>
> >                                 <scanTarget>${basedir}/src/main/
> > resources</scanTarget>
> >                                 <scanTarget>${basedir}/src/main/
> > webapp</scanTarget>
> >                                 <scanTarget>${basedir}/target/myapp/
> > com.example.MyApp</scanTarget>
> >                             </scanTargets>
> >                             <systemProperties>
> >                                <!-- Just some HSQL config stuff - just
> > ignore for now -->
> >                                 <systemProperty>
> >                                     <name>dbtest</name>
> >                                     <value>${basedir}/src/test/db/
> > testdb</value>
> >                                 </systemProperty>
> >                                 <systemProperty>
> >                                     <name>hibernate_driver</name>
> >                                     <value>org.hsqldb.jdbcDriver</
> > value>
> >                                 </systemProperty>
> >                                 <systemProperty>
> >                                     <name>hibernate_dialect</name>
>
> > <value>com.example.myapp.util.CustomHSQLDialect</value>
> >                                 </systemProperty>
> >                             </systemProperties>
> >                         </configuration>
> >                     </plugin>
>
> > The next part is telling the war packager to get rid of the package
> > name, so when you deploy, you don't have that nasty module name:
>
> >             <plugin>
> >                 <groupId>org.apache.maven.plugins</groupId>
> >                 <artifactId>maven-war-plugin</artifactId>
> >                 <configuration>
> >                     <webappDirectory>${project.build.directory}/$
> > {project.build.finalName}/com.example.MyApp</webappDirectory>
> >                 </configuration>
> >             </plugin>
>
> > Now you can run mvn jetty:run  and then run GWT in --noserver mode.
> > You will notice that you can startup GWT 
> > withhttp://localhost:8080/index.html.
> > You can put your index.html as your launch pad for your application.
>
> > Now, if you want to run it all in hosted mode, including Spring,
> > Hibernate, etc under Tomcat... I can post that configuration as its
> > much more involved.  However, you will have to live with the module
> > name when running it in full hosted mode, but your deployment/war will
> > not have the module name (due to the maven war config posted above).
> > Just be sure you are not hard-coding URLs in your code and that
> > everything is relative.
>
> > I hope this helps.  If you have issues...post the results and I will
> > see if I can fill in the blanks.
>
> > On Feb 23, 3:23 pm, Matt Raible <[email protected]> wrote:
>
> > > I was able to solve this by adding the UrlRewriteFilter to my project
> > > with the following configuration in WEB-INF/urlrewrite.xml:
>
> > > <?xml version="1.0" encoding="UTF-8"?>
> > > <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
> > >         "http://tuckey.org/res/dtds/urlrewrite3.0.dtd";>
>
> > > <urlrewrite>
> > >     <rule>
> > >         <from>/$</from>
> > >         <to type="forward" last="true">/com.mycompany.app.Application/
> > > Application.html</to>
> > >     </rule>
> > >     <rule>
> > >         <from>/index.html</from>
> > >         <to type="forward" last="true">/com.mycompany.app.Application/
> > > Application.html</to>
> > >     </rule>
> > >     <rule>
> > >         <from>^/(.*)\.(.*)$</from>
> > >         <to type="forward">/com.mycompany.app.Application/$1.$2</to>
> > >     </rule>
> > > </urlrewrite>
>
> > > Hope this helps someone else.
>
> > > Matt
>
> > > On Feb 18, 2:23 pm, Matt Raible <[email protected]> wrote:
>
> > > > Is there a way to use the gwt-maven plugin to allow running in hosted
> > > > mode, as well as deploying the app at root?
>
> > > > Thanks,
>
> > > > Matt
>
> > > > On Wed, Feb 18, 2009 at 1:34 PM, Robert kebernet Cooper
>
> > > > <[email protected]> wrote:
>
> > > > > Rather "do that with the hosted mode tomcat"..
>
> > > > > 2009/2/18 Robert "kebernet" Cooper <[email protected]>:
> > > > >> Aah, yeah. You can't actually do that with the hosted mode browser. 
> > > > >> You would need to deploy the war (or start it in-place) and run the 
> > > > >> shell in noserver mode.
>
> > > > >> 2009/2/18 Matt Raible <[email protected]>:
>
> > > > >>> What do I change my pom.xml's runTarget to? It's current set at:
>
> > > > >>> <runTarget>com.mycompany.Application/Application.html</runTarget>
>
> > > > >>> If I make your suggested change and change my runLevel to:
>
> > > > >>> <runTarget>index.html</runTarget>
>
> > > > >>> I get the following error in hosted mode:
>
> > > > >>> Unable to find/load module 'index.html' (see server log for details)
>
> > > > >>> Thanks,
>
> > > > >>> Matt
>
> > > > >>> On Wed, Feb 18, 2009 at 12:02 PM, Robert kebernet Cooper
> > > > >>> <[email protected]> wrote:
>
> > > > >>>> Actually, I don't think you even need to do that anymore. With the
> > > > >>>> 1.4+ bootstrap, just include
> > > > >>>> <script src="my.Module/my.Module.nocache.js" >
>
> > > > >>>> in your webapp/index.html file.
>
> > > > >>>> On Wed, Feb 18, 2009 at 1:51 PM, Matt Raible <[email protected]> 
> > > > >>>> wrote:
>
> > > > >>>>> Rather than having my application's HTML file in
> > > > >>>>> src/main/java/com/mycompany/Application.html, I'd like to move it 
> > > > >>>>> to
> > > > >>>>> src/main/webapp/index.html. I tried copying the HTML and adding 
> > > > >>>>> the
> > > > >>>>> following to my index.html, but no dice:
>
> > > > >>>>> <meta name="gwt:module" content="com.mycompany.Application"/>
>
> > > > >>>>> Is this possible with the gwt-maven-plugin? I'd like to have my 
> > > > >>>>> main
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"gwt-maven" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/gwt-maven?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to