我试图弄清楚为什么在为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 /
答案 0 :(得分:2)
"导出WAR文件"动作是错误的方法,因为它不包括GWT特定的设置和工件。
/<your-web-project>/war
文件夹或类似文件夹
(在项目设置中指定 - &gt; Google - &gt; Web应用程序)war
文件夹:导出 - &gt;一般 - &gt;档案文件*.zip
重命名为*.war
答案 1 :(得分:0)
试图首先编译您的应用程序(Google - &gt; GWT Compile)?编译时,尝试再次部署它。如果它仍然不起作用,你应该检查你的web.xml,参见e。 G。 Deploy GWT .war with Servlet in Tomcat。
答案 2 :(得分:0)
jar cvf PROJECT_NAME.war *
我将这个war文件上传到我的tomcat生产webapps并且它可以工作。
当我尝试使用eclipse创建war文件时,它没有创建完整的文件(不确定原因),因此404错误。
答案 3 :(得分:0)
来自@MarcelStör和@adhg的解决方案是正确的,如果你不像我那样愚蠢,并且没有将你的Eclipse GWT项目转换为Maven项目,从而完全破坏任何自动化。
所以,如果你有项目,那么在开发模式下工作正常,从Eclipse运行,但你的war
目录是空的,以下是给你的:手动制作WAR非常简单。
我认为你的项目正在调用“MyProj”
myproj_deploy
。MyProj/target
。你会找到名为MyProj-0.0.1-SNAPSHOT
的目录。将其内容复制到myproj_deploy
dir。MyProj/target
下有classes
目录。进入内部,您将找到名为“main”的文件夹和WEB-INF/classes
目录的根目录,因此创建myproj_deploy/WEB-INF/classes
目录并将MyProj/target/classes
的内容复制到其中,“主要”目录除外。 MyProj/target/main/webapp
。当然,您可以识别这些文件。这是您的WEB-INF/web.xml
,您的主机HTML,您的CSS等。将所有内容复制到myproj_deploy
的根目录中。
你差不多准备好了。$WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmpN/wtpwebapps/MyProj/WEB-INF/
并将lib
目录复制到myproj_deploy/WEB-INF/
。这是您的项目库依赖项,它是最简单的方法,不要忘记将一些库包含在WAR中。myproj_deploy
的内容打包到WAR中,如@adhg answer所示,并将此WAR复制到您的Tomcat webapps目录上。我花了几个小时才找到这个解决方案,可能这篇帖子会帮助别人节省一些时间。
编辑:
我不知道,为什么,但在处理第1页之前,请清除项目的“目标”目录。
在第6页复制“替换'classes'目录。