Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Tomcat上部署GWT_Java_Eclipse_Tomcat_Gwt_War - Fatal编程技术网

Java 如何在Tomcat上部署GWT

Java 如何在Tomcat上部署GWT,java,eclipse,tomcat,gwt,war,Java,Eclipse,Tomcat,Gwt,War,我试图弄明白为什么当我为我的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模块 现在,我想进入生产阶段,右键单击项目名称来“警告”项目

我试图弄明白为什么当我为我的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-->

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

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


是否尝试先编译应用程序(Google->GWT compile)?编译后,再次尝试部署它。如果仍然不起作用,您应该检查web.xml,请参阅e。g、

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

  • 右键单击web项目:Google->GWT Compile,这将为您提供一个
    //war
    文件夹或类似文件夹 (在项目设置->谷歌->网络应用程序中指定)
  • 在项目浏览器或导航器中展开web项目
  • 右键单击
    war
    文件夹:导出->常规->归档文件
  • 将导出的ZIP文件从
    *.ZIP
    重命名为
    *.war

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

    jar cvf项目\u NAME.war*

    我把这个war文件上传到我的tomcat产品webapps上,它可以正常工作


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

    来自@Marcel Stör和@adhg的解决方案是正确的,如果你不像我那么愚蠢,没有将eclipse GWT项目转换为Maven项目,从而彻底破坏任何自动化的话

    因此,如果您有一个project,它在开发模式下工作正常,从Eclipse运行,但是您的
    war
    目录是空的,那么下面是给您的:手动创建war非常简单

    我猜你的项目叫“MyProj”

  • 在PackageExplorer中右键单击您的项目,然后选择GWT->Compile
  • 启动您喜爱的文件管理器并创建一些临时目录(驱动器上的任何位置)来存储部署文件,例如,
    myproj\u deploy
  • 转到
    MyProj/target
    。您将找到一个名为
    MyProj-0.0.1-SNAPSHOT
    的目录。将it内容复制到
    myproj_deploy
    dir
  • MyProj/target
    下有
    classes
    目录。进入里面,你会找到名为“main”的文件夹和
    WEB-INF/classes
    dir的根目录,所以创建
    myproj\u deploy/WEB-INF/classes
    目录并将
    myproj/target/classes
    的内容复制到其中,除了“main”目录
  • 现在,转到
    MyProj/target/main/webapp
    。当然,您可以识别这些文件。这是您的
    WEB-INF/WEB.xml
    、主机HTML、css等。将所有内容复制到
    myproj\u deploy
    的根目录中。 你差不多准备好了
  • 转到
    $WORKSPACE/.metadata/.plugins/org.eclipse.wst.server.core/tmpN/wtpwebapps/MyProj/WEB-INF/
    并将
    lib
    目录复制到
    MyProj\u deploy/WEB-INF/
    中。这是您的项目库依赖项,并且不要忘记在WAR中包含一些库是最简单的方法
  • myproj_deploy
    的内容打包到WAR中,如@adhg answer所示,并将此WAR复制到您的Tomcat webapps目录中
  • 享受
  • 我已经花了几个小时来寻找这个解决方案,可能这篇文章会帮助别人节省一些时间

    编辑:

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

  • 在第6页,复制替换“类”目录


  • 手动制作和复制war文件是否有效?不确定“手动制作和复制”是什么意思?我正在为生产手工操作。ThanksI的意思是从相关的文件和目录创建一个war存档,并手动将它们复制到相应的Tomcat目录(没有IDE向导)。是的,我用jar-cvf命令尝试了这一点,但也没有效果(它创建了war,但当我把它放在webapps下时,什么都没有)。我甚至不确定我应该指向哪个URL?这些正是我给你的指示-除了你在命令行上构建
    .war
    文件(这是可选的)。这就是“不确定为什么”…您可能需要为jar设置路径。。。。否则,…'jar'不会被识别为内部或外部命令、可操作程序或批处理文件。
    Web project: bspdir