代码之家  ›  专栏  ›  技术社区  ›  adhg veen

如何在Tomcat上部署GWT

  •  1
  • adhg veen  · 技术社区  · 9 年前

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

    在我的开发模式中,我使用的是谷歌插件:

    Run As --> Web Application
    

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

    非常好!

    请注意,我没有使用GAE,我取消了使用GoogleApp引擎,并在我的项目属性方面添加了动态Web模块。

    所以现在,我希望进入生产阶段,我通过右键单击 项目名称 -->export-->Web-->War-->

    Web project: bspdir
    

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

    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 回复  |  直到 9 年前
        1
  •  2
  •   Marcel Stör    9 年前

    “导出WAR文件”操作是错误的方法,因为它不包含GWT特定的设置和工件。

    1. 右键单击web项目:Google->GWT编译,这将为您提供 /<your-web-project>/war 文件夹或类似文件 (在项目设置中指定->Google->Web应用程序)
    2. 在项目浏览器或导航器中展开web项目
    3. 右键单击 war 文件夹:导出->常规->存档文件
    4. 从中重命名导出的ZIP文件 *.zip *.war
        2
  •  0
  •   Wolfgang Strauss    9 年前

    尝试先编译应用程序(Google->GWT编译)?编译后,尝试再次部署它。如果它仍然不起作用,你应该检查你的网站。xml,参见例如。 Deploy GWT .war with Servlet in Tomcat .

        3
  •  0
  •   adhg veen    9 年前

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

    jar cvf PROJECT_NAME.war *

    我把这个战争文件上传到了我的tomcat制作网络应用程序中,并且效果不错。

    当我试图用eclipse创建一个war文件时,它没有创建一个完整的文件(不知道为什么),因此出现了404错误。

        4
  •  0
  •   vkkeeper    6 年前

    若你们并没有像我一样愚蠢,并没有将EclipseGWT项目转换为Maven项目,从而完全破坏任何自动化,那个么来自@MarcelStr和@adhg的解决方案就是正确的方法。

    所以,如果您有项目,那么在开发模式下工作正常,从Eclipse运行,但您的 war 目录是空的,下面是为您准备的:手动生成WAR非常简单。

    我假设你的项目叫做“MyProj”

    1. 在PackageExplorer中的项目上单击鼠标右键,然后选择GWT->编写
    2. 启动您喜爱的文件管理器并创建一些临时目录(在驱动器上的任何位置)来存储部署文件,例如, myproj_deploy .
    3. MyProj/target 。您将找到目录,名为 MyProj-0.0.1-SNAPSHOT 。将其内容复制到 我的项目部署 目录。
    4. 在下面 我的项目/目标 classes 目录进入里面,你会发现一个名为“main”的文件夹 WEB-INF/classes dir,因此创建 myproj_deploy/WEB-INF/classes 的目录和副本内容 MyProj/target/classes 除了“主”目录。
    5. 现在,转到 MyProj/target/main/webapp 。当然,您可以识别这些文件。这是你的 WEB-INF/web.xml ,你的宿主HTML,你的css等。将所有内容复制到 我的项目部署 . 你几乎准备好了。
    6. $WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmpN/wtpwebapps/MyProj/WEB-INF/ 和复制 lib 目录到 myproj_deploy/WEB-INF/ 这是您的项目库依赖关系,不要忘记在WAR中包含一些库是最简单的方法。
    7. 的包装内容 我的项目部署 将WAR复制到Tomcat webapps目录中。
    8. 享受

    我花了几个小时来找到这个解决方案,也许这篇文章会帮助人们节省一些时间。

    编辑:

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

    2. 在第6页,也复制替换的“classes”目录。