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 -~----------~----~----~----~------~----~------~--~---
