我在这个网站上搜索了这个问题的答案,却找不到解决方法。 我做的是我只是压缩我的eclipse GWT应用程序项目中的war目录,然后将其重命名为.war然后将其删除到tomcat webapps文件夹。 当我运行Web应用程序时,第一个屏幕成功显示但是当我在我的src代码中调用servlet时,它给了我tomcat服务器找不到的资源。 我确定我已经在web.xml文件中添加了servlet的条目,当我在eclipse gwt dev模式下运行它时,应用程序运行良好。某些事情阻止我的servlet(标准servlet而不是GWT RPC servlet)被tomcat找到并执行。可能是什么原因?
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- Servlets -->
<servlet>
<servlet-name>OAuth</servlet-name>
<servlet-class>org.goauth.server.OAuthServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OAuth</servlet-name>
<url-pattern>/goauth/oauth</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>OAuthCallback</servlet-name>
<servlet-class>org.goauth.server.OAuthCallbackServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OAuthCallback</servlet-name>
<url-pattern>/goauth/callback</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>service</servlet-name>
<servlet-class>org.goauth.server.OAuthServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>service</servlet-name>
<url-pattern>/goauth/service</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>OAuthConfirm</servlet-name>
<servlet-class>org.goauth.server.OAuthConfirmServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OAuthConfirm</servlet-name>
<url-pattern>/goauth/confirm</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>GOAuth.html</welcome-file>
</welcome-file-list>
</web-app>
HTTP Status 404 - /goauth/oauth
type Status report
message /goauth/oauth
description The requested resource (/goauth/oauth) is not available.
Apache Tomcat/6.0.20
答案 0 :(得分:4)
我发现了问题:
为了调用我的servlet我正在调用格式为的URL:"/goauth/OAuth"
这在dev模式下使用eclipse gwt插件,但在我将war部署到tomcat服务器时却没有。
解决方案是指向我的servlet的url应该是以下形式:
String href = GWT.getHostPageBaseURL()+"goauth/OAuth";
所以我们需要通过在servlet url前加上GWT.getHostPageBaseURL()来告诉tomcat完整的url。
答案 1 :(得分:1)
看看如何在eclipse中创建一个GWT .war:http://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/12/
答案 2 :(得分:0)
在您的映射中,尝试更改 / goauth / OAuth的 到/ OAuth