在Tomcat中使用Servlet部署GWT .war



我一直在遵循构建样例GWT应用程序的教程:http://code.google.com/webtoolkit/doc/latest/tutorial/gettingstarted.html

然后我想尝试根据本教程公开一个servlet来提供一些JSON数据:http://code.google.com/webtoolkit/doc/latest/tutorial/JSON.html

这两个教程都非常清楚,我没有问题,让它在Eclipse中运行在开发模式下工作。我测试它的方式是通过转到这个URL: http://localhost:8888/stockwatcher/stockPrices?q=ABC+DEF返回json结果,就像教程中设计的那样。但是现在我想将这个项目部署为war文件,并在我自己的Tomcat服务器上运行它。我找到了这个将项目转化为.war文件的部署教程:http://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/12/。很明显,.war文件没有任何错误,但是在我部署它之后,用于JSON数据的servlet无法工作。我只是得到一个404页面,什么也没有发生。我也没有在server.log中看到任何内容。另外,如果有什么不同的话,我将尝试在Tomcat 6中部署它。

我明白了;这是我的web.xml文件中的url-pattern标签的问题。

这是我所拥有的:

<url-pattern>/stockwatcher/stockPrices</url-pattern>

,但这导致可以从以下URL访问stockPrices servlet: http://127.0.0.1:8080/stockwatcher/stockwatcher/stockPrices?q=ABC

改为:

<url-pattern>/stockPrices</url-pattern>

因为它已经在stockwatcherwar上下文中了

现在这个链接正常工作:http://127.0.0.1:8080/stockwatcher/stockPrices?q=ABC

您可以尝试将编译过程中创建的整个文件夹复制到tomcat webapps文件夹中。如果这种方法有效,你就会知道问题是出在战争本身,还是有其他原因。我认为这与您的web.xml有关。在你的tomcat目录中,如果你查看/webapps/yourproject/WEB-INF/, web.xml看起来像什么?你的应用程序中有rpc吗?他们在工作吗?

您已经将servlet映射为

/stockwatcher上涨空间

但是你调用它为:

/stockwatcher/上涨空间?q = ABC

这是一个打字错误。

确保应用程序在与eclipse中相同的路径上启动

http://127.0.0.1:8080 stockwatcher

Tomcat默认使用war/文件夹名作为根路径,所以如果您有stockwatcher shapshot——1.0。战争,它将发布为http://127.0.0.1:8080/stockwatcher-1.0-SHAPSHOT…

还要到Tomcat管理页面http://localhost:8080/manager/html,以确保您的应用程序已在哪个路径上发布

最新更新