There are only two simple steps to take, to build a .war from your GWT project:
Short version:
The first step is building a .jar from your src-folder and putting the .jar into the lib-folder of the .war-folder of your GWT-project. The second step is building a .war-file from your war-folder and deploying the .war to your tomcat server. To make the second step more compfortable, I wrote a little Ant-script, that will create the .war.
More detailed – Step 1:
| 1) Right-click the src folder inside your project. | |
| 2) The following PopUp-menu will appear.
Select “Export …” from this menu. |
|
| 3) Select “JAR file” from the next window | |
| 4) Make sure, only the “src”-folder of your project is checked in the next window.
Select the export destination like this: <folder of your project>/war/WEB-INF/lib/<projectname>.jar – then click “Finish” |
Now your GWT-project is ready to be packed into a .war, that can be deployed to a tomcat server.
More detailed – Step 2:
1) Create a new ANT-script in your project (Right-click your project folder and select “New” and then select “File” from the submenu. Call the new file “warbuilder.xml” or something like this.).
2) Copy the following content into the newly created file. Replace <projectname> with the name of your project:
<project name="<projectname>" basedir="." default="default"> <target name="default" depends="buildwar,deploy"></target> <target name="buildwar"> <war basedir="war" destfile=" <projectname>.war" webxml="war/WEB-INF/web.xml"> <exclude name="WEB-INF/**" /> <webinf dir="war/WEB-INF/"> <include name="**/*.jar" /> </webinf> </war> </target> <target name="deploy"> <copy file=" <projectname>.war" todir="." /> </target> </project> |
3) The first two steps must be done only once. You can reuse the warbuilder.xml and do not have to build it every time. Now simply right-click the “warbuilder.xml” and select “Run As” and “Ant Build” from the PopUp-menu.
The .war-File will be created by this ANT-script. You will find the .war-file in your ProjectFolder.
this great dude……
it’s work fine for me, i just searching for this
Thanks for your posting. This article ‘s very helpful to me.
To explain a little. You can skip creating the jar from the compiled source java files and copying that jar into web-inf/lib if you do a few alternate things.
Before running the ant script, click the GWT suitcase looking icon that compiles the project. (It puts the class files in web-inf/classes.
Add a line to the ant build xml just below where you include **/*.jar. It will look just like that line but the file name inside the quotes will be “classes/**”. (This adds the jar files from web-inf/lib and the class files from web-inf/classes.
This is an alternate way to supply the java class files to run the back end of the application. Either building the jar and copying it in, as you described, OR doing the GWT compile and including the classes when building the war file. Either should work.
Yep! \o/
@Amit Kumar Das
Thanks, it appears to be just what I’m looking for to test my new (and first) Tomcat installation. I’ll try it Monday.
It appears that your script/application puts Time() at Time() in the message headers rather than Date() at Time().
Therefor I have no idea if this is a thread is still live…
Thank you ! it work fine
Good article Everything work fine but I have some problem.. when I open myPage.html it work fine but if I call my project by this url “localhost:8080/myProject/myPage.html”
I found error 404 can someone solve my problem
thanks for help. Nuttee From Thailand
plz forget my problem.. i solution it by mapping servlet in web.xml
Hi man,
roject.css
It looks really nice, but it’s not working here.
I do everything as said and when I run on tomcat it doesn’t work.
At chrome debugger it says:
Failed to load resource: the server responded with a status of 404 (Not Found)
Failed to load resource: the server responded with a status of 404 (Not Found) :8080/Project/project/servlet?
and the same for my other servlets
Any Idea of how to make it work??
Thankss!
Thank you!
It doesn’t seem like creating the .jar from the src folder is necessary. I’m not sure why it’s being done for deployment purposes? None of that code is compiled into either javascript or java. It seems like something that you would do if you were packaging everything into a jar file so that another module could inherit it and that other module would be able to run a debugger and see the source code.
Hi,
I followed your tutorial but I got the message “GWT module needs to be (re) compiled” once i try to access the app.
Can you tell me what I missed plz?
Thanx.
Good article. However when I try to build the ant file, I get library reference problems. This is the error message I get
Main.java:6: package com.google.gwt.core.client does not exist
[javac] import com.google.gwt.core.client.EntryPoint;
When I compile this via development server, everything works fine and also I checked that the GWT SDK lives in classpath. Any ideas ?
thank , This article ‘s very helpful to me
Cool! Thanks for post, it works very well.
This is unfortunately slightly bogus advice. There is absolutely no need to compile the src folder.
Sir, thank you SO MUCH for this article! I have step the last three hours trying to get a GWT application using a Java Servlet to deploy properly and I believe you have solved my problem!
I know this comment is about 3 years too late, but GWT has a nice utility called “webAppCreator” that generates a build.xml. You can run it with the module name you want (eg: -out foo com.example.foo.Foo) and it will make a build.xml for you. So if you already have a project called “com.example.foo.Foo” you can use it to make yourself a build script.
Superb article , this one really helped me to deploy my gwt application on tomcat . It hardly took me 10 mins on something for which I had wasted more than 2 days. Thanks a lot.
Allright Man! What a TIME savings… EXACTLY what I needed to solve the deployment to a tomcat instance.
Thank you so much for the time you spent to help others out. You just generated GOOD karma from doing so.
Kudos!
Carl
thank you so much this post has solved my problem. i am so happy
may God bless everyone here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!