The plugin also has a "webXmlPathAsIs" parameter, which might help if
you want to strip the path.
http://gwt-maven.googlecode.com/svn/docs/maven-googlewebtoolkit2-plugin/compile-mojo.html#webXmlServletPathAsIs

I don't use that, but someone asked for it back when.



On Feb 24, 3:27 pm, Matt Raible <[email protected]> wrote:
> 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" >
>
> ...
>
> 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