如何在 Tomcat 上部署 GWT
How to deploy GWT on Tomcat
我想弄清楚为什么当我为我的 GWT 项目创建一个 WAR 时,我无法像在我的开发模式中那样启动 Web 应用程序和 运行。
在我的开发模式下,我使用的是 googles 插件:
Run As --> Web Application
我得到 http://127.0.0.1:8888/Bspdir.html?gwt.codesvr=127.0.0.1:9997
效果很好!
请注意,我没有使用 GAE,我取消选中了使用 GoogleApp 引擎,并且在我的项目属性方面添加了动态 Web 模块。
所以现在,我希望投入生产,我是 'WARing' 项目,方法是右键单击 项目名称-->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/
尝试先编译您的应用程序(Google -> GWT 编译)?编译后,尝试再次部署它。如果它仍然不起作用,您应该检查您的 web.xml,请参阅 e。 G。 Deploy GWT .war with Servlet in Tomcat。
"Export WAR file" 操作是错误的方法,因为它不包含 GWT 特定设置和工件。
- 右键单击 Web 项目:Google -> GWT 编译,这应该会给你一个
/<your-web-project>/war
文件夹或类似的文件夹
(在项目设置中指定 -> Google -> Web 应用程序)
- 在项目资源管理器或导航器中展开 Web 项目
- 右键单击
war
文件夹:导出 -> 常规 -> 存档文件
- 将导出的 ZIP 文件从
*.zip
重命名为 *.war
好的,经过多次尝试我做对了。转到您应用程序的 WAR 文件夹(命令行)并使用以下命令手动创建它:
jar cvf PROJECT_NAME.war *
我将这个 war 文件上传到我的 tomcat 生产网络应用程序并且它有效。
当我试图用 eclipse 创建一个 war 文件时,它没有创建一个完整的文件(不知道为什么),因此出现 404 错误。
来自@Marcel Stör 和@adhg 的解决方案是正确的方法,如果你不像我一样愚蠢并且没有将你的 Eclipse GWT 项目转换为 Maven 项目并因此完全破坏任何自动化。
因此,如果您有项目,在 Eclipse 运行 的开发模式下工作正常,但您的 war
目录是空的,下面是给您的:制作 运行 非常简单=74=]手动。
我假设您的项目正在调用 "MyProj"
- 在 Package Explorer 中右键单击您的项目并选择 GWT -> 编译。
- 启动你最喜欢的文件管理器并创建一些临时目录(在你的驱动器上的任何地方)来存储你的部署文件,例如,
myproj_deploy
。
- 前往
MyProj/target
。您会找到目录,名称类似于 MyProj-0.0.1-SNAPSHOT
。将其内容复制到 myproj_deploy
目录中。
- 在
MyProj/target
下有classes
目录。进入里面,你会找到名为 "main" 的文件夹和 WEB-INF/classes
目录的根目录,因此创建 myproj_deploy/WEB-INF/classes
目录并将 MyProj/target/classes
的内容复制到其中,除了 "main" 目录。
- 现在,转到
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 目录中。
- 尽情享受吧。
我花了几个小时才找到这个解决方案,也许这个 post 会帮助别人节省一些时间。
编辑:
我不知道,为什么,但是在处理 p.1 之前,清除项目的 'target' 目录。
在第 6 页复制替换 'classes' 目录。
我想弄清楚为什么当我为我的 GWT 项目创建一个 WAR 时,我无法像在我的开发模式中那样启动 Web 应用程序和 运行。
在我的开发模式下,我使用的是 googles 插件:
Run As --> Web Application
我得到 http://127.0.0.1:8888/Bspdir.html?gwt.codesvr=127.0.0.1:9997
效果很好!
请注意,我没有使用 GAE,我取消选中了使用 GoogleApp 引擎,并且在我的项目属性方面添加了动态 Web 模块。
所以现在,我希望投入生产,我是 'WARing' 项目,方法是右键单击 项目名称-->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/
尝试先编译您的应用程序(Google -> GWT 编译)?编译后,尝试再次部署它。如果它仍然不起作用,您应该检查您的 web.xml,请参阅 e。 G。 Deploy GWT .war with Servlet in Tomcat。
"Export WAR file" 操作是错误的方法,因为它不包含 GWT 特定设置和工件。
- 右键单击 Web 项目:Google -> GWT 编译,这应该会给你一个
/<your-web-project>/war
文件夹或类似的文件夹 (在项目设置中指定 -> Google -> Web 应用程序) - 在项目资源管理器或导航器中展开 Web 项目
- 右键单击
war
文件夹:导出 -> 常规 -> 存档文件 - 将导出的 ZIP 文件从
*.zip
重命名为*.war
好的,经过多次尝试我做对了。转到您应用程序的 WAR 文件夹(命令行)并使用以下命令手动创建它:
jar cvf PROJECT_NAME.war *
我将这个 war 文件上传到我的 tomcat 生产网络应用程序并且它有效。
当我试图用 eclipse 创建一个 war 文件时,它没有创建一个完整的文件(不知道为什么),因此出现 404 错误。
来自@Marcel Stör 和@adhg 的解决方案是正确的方法,如果你不像我一样愚蠢并且没有将你的 Eclipse GWT 项目转换为 Maven 项目并因此完全破坏任何自动化。
因此,如果您有项目,在 Eclipse 运行 的开发模式下工作正常,但您的 war
目录是空的,下面是给您的:制作 运行 非常简单=74=]手动。
我假设您的项目正在调用 "MyProj"
- 在 Package Explorer 中右键单击您的项目并选择 GWT -> 编译。
- 启动你最喜欢的文件管理器并创建一些临时目录(在你的驱动器上的任何地方)来存储你的部署文件,例如,
myproj_deploy
。 - 前往
MyProj/target
。您会找到目录,名称类似于MyProj-0.0.1-SNAPSHOT
。将其内容复制到myproj_deploy
目录中。 - 在
MyProj/target
下有classes
目录。进入里面,你会找到名为 "main" 的文件夹和WEB-INF/classes
目录的根目录,因此创建myproj_deploy/WEB-INF/classes
目录并将MyProj/target/classes
的内容复制到其中,除了 "main" 目录。 - 现在,转到
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 目录中。 - 尽情享受吧。
我花了几个小时才找到这个解决方案,也许这个 post 会帮助别人节省一些时间。
编辑:
我不知道,为什么,但是在处理 p.1 之前,清除项目的 'target' 目录。
在第 6 页复制替换 'classes' 目录。