【问题标题】:how to deploy GWT app to tomcat如何将 GWT 应用程序部署到 tomcat
【发布时间】:2011-09-06 18:45:35
【问题描述】:

我在这个网站上搜索了这个问题的答案,但找不到解决方案。 我所做的是我只是在我的eclipse GWT应用程序项目中压缩war目录,然后将其重命名为.war,然后将其放到tomcat webapps文件夹中。 当我运行 Web 应用程序时,第一个屏幕已成功显示,但是当我在我的 src 代码中调用一个 servlet 时,它给了我 tomcat 服务器找不到的资源。 我确定我已经在 web.xml 文件中添加了 servlet 条目,并且当我在 eclipse gwt 开发模式下运行它时,该应用程序运行良好。有些东西阻止我的 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>

错误

tomcate 日志文件中没有任何内容 浏览器中唯一的错误是:

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

【问题讨论】:

  • 你能告诉我们你的 web.xml 和你得到的堆栈跟踪吗?
  • 好的,给我一些时间回到我在我的另一台 Mac 机器上的代码。我会尽快发布信息。thnx
  • 我添加了 web.xml 文件,当我按下调用 servlet /goauth/oauth 的按钮时出现错误。即使所有都存在于war文件中,tomcat也找不到这个servlet。

标签: gwt tomcat7


【解决方案1】:

我发现了问题: 为了调用我的 servlet,我调用了以下格式的 url:"/goauth/OAuth" 这在开发模式下与 eclipse gwt 插件一起工作,但当我将战争部署到 tomcat 服务器时却不行。 解决方案是我的 url 指向我的 servlet 应该是以下形式:

String href = GWT.getHostPageBaseURL()+"goauth/OAuth";

所以我们需要通过在 servlet url 前加上 GWT.getHostPageBaseURL() 来告诉 tomcat 完整的 url。

【讨论】:

  • 您好,感谢您的回答,我在 GWT.getModuleBaseUrl() 或 GWT.getHostPageBaseUrl() 上收到了 tomcat UnsatisfiedLinkError。我究竟做错了什么? java.lang.UnsatisfiedLinkError: com.google.gwt.core.client.impl.Impl.getModuleBaseURL()Ljava/lang/String;
  • 也许您在服务器端使用 GWT.getHostPageBaseUrl()。你不能这样做,因为这只是客户端代码,不能在服务器端使用
  • 非常感谢您的回复。我实际上是在服务器上调用它。那么有没有办法在服务器端找到路径呢?
  • 在您的服务器代码中,您将有一个 request 对象,路径是 request.getContextPath()
【解决方案2】:

【讨论】:

  • 我在这个链接教程中做了同样的事情,但我有同样的错误。我已经用 web.xml 文件更新了我的问题。当我调用 servlet /goauth/oauth 时,服务器返回 404。
【解决方案3】:

在您的映射中,尝试更改 /goauth/oauth 到 /OAuth

【讨论】:

  • 不,maneesh 先生,您的解决方案不起作用! -还有其他人有解决方案吗?
  • HTTP 状态 404 - /OAuth 类型 状态报告消息 /OAuth 描述 请求的资源 (/OAuth) 不可用。 Apache Tomcat/6.0.20
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
相关资源
最近更新 更多