如何在Tomcat上部署GWT

时间:2015-08-13 16:30:49

标签: java eclipse tomcat gwt war

我试图弄清楚为什么在为GWT项目创建WAR时,我无法像开发模式那样启动和运行webapp。

在我的开发模式中,我使用googles插件:

Run As --> Web Application

我得到了http://127.0.0.1:8888/Bspdir.html?gwt.codesvr=127.0.0.1:9997

效果很好!

请注意,我没有使用GAE,我取消选中了使用GoogleApp Engine,在我的项目属性方面,我添加了动态网络模块。

所以现在,我希望去制作并且我正在制作'警告'通过右键单击项目名称 -->export-->Web-->War-->

来选择项目
Web project: bspdir

[见下面的截图]我将WAR文件上传到我的/usr/local/tomcat6/webapps并在网址中输入以下内容:

http://MY_SERVER.com:8080/bspdir/

http://MY_SERVER.com:8080/Bspdir/

http://MY_SERVER.com:8080/bspdir/Bspdir.html

并始终收到相同的错误消息: HTTP状态404 - / bspdir /

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:2)

"导出WAR文件"动作是错误的方法,因为它不包括GWT特定的设置和工件。

  1. 右键点击网络项目:Google - &gt; GWT Compile,这应该给你一个/<your-web-project>/war文件夹或类似文件夹 (在项目设置中指定 - &gt; Google - &gt; Web应用程序)
  2. 在项目资源管理器或导航器中展开Web项目
  3. 右键单击war文件夹:导出 - &gt;一般 - &gt;档案文件
  4. 将导出的ZIP文件从*.zip重命名为*.war

答案 1 :(得分:0)

试图首先编译您的应用程序(Google - &gt; GWT Compile)?编译时,尝试再次部署它。如果它仍然不起作用,你应该检查你的web.xml,参见e。 G。 Deploy GWT .war with Servlet in Tomcat

答案 2 :(得分:0)

好吧,经过多次尝试,我做对了。转到应用程序的WAR文件夹(命令行)并使用以下命令手动创建:

jar cvf PROJECT_NAME.war *

我将这个war文件上传到我的tomcat生产webapps并且它可以工作。

当我尝试使用eclipse创建war文件时,它没有创建完整的文件(不确定原因),因此404错误。

答案 3 :(得分:0)

来自@MarcelStör和@adhg的解决方案是正确的,如果你不像我那样愚蠢,并且没有将你的Eclipse GWT项目转换为Maven项目,从而完全破坏任何自动化。

所以,如果你有项目,那么在开发模式下工作正常,从Eclipse运行,但你的war目录是空的,以下是给你的:手动制作WAR非常简单。

我认为你的项目正在调用“MyProj”

  1. 在Package Explorer中右键单击您的项目,然后选择GWT - &gt;编译。
  2. 启动您最喜欢的文件管理器并创建一些临时目录(驱动器上的任何位置)以存储部署文件,例如myproj_deploy
  3. 转到MyProj/target。你会找到名为MyProj-0.0.1-SNAPSHOT的目录。将其内容复制到myproj_deploy dir。
  4. MyProj/target下有classes目录。进入内部,您将找到名为“main”的文件夹和WEB-INF/classes目录的根目录,因此创建myproj_deploy/WEB-INF/classes目录并将MyProj/target/classes的内容复制到其中,“主要”目录除外。
  5. 现在,转到MyProj/target/main/webapp。当然,您可以识别这些文件。这是您的WEB-INF/web.xml,您的主机HTML,您的CSS等。将所有内容复制到myproj_deploy的根目录中。 你差不多准备好了。
  6. 转到$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmpN/wtpwebapps/MyProj/WEB-INF/并将lib目录复制到myproj_deploy/WEB-INF/。这是您的项目库依赖项,它是最简单的方法,不要忘记将一些库包含在WAR中。
  7. myproj_deploy的内容打包到WAR中,如@adhg answer所示,并将此WAR复制到您的Tomcat webapps目录上。
  8. 享受。
  9. 我花了几个小时才找到这个解决方案,可能这篇帖子会帮助别人节省一些时间。

    编辑:

    1. 我不知道,为什么,但在处理第1页之前,请清除项目的“目标”目录。

    2. 在第6页复制“替换'classes'目录。