【问题标题】:Maven-generated GWT Servlet not RespondingMaven 生成的 GWT Servlet 没有响应
【发布时间】:2011-07-21 08:15:41
【问题描述】:

我使用 GWT Maven 插件(2.3.0 版)生成了一个 GWT 项目。这样做的好处是 Maven 插件负责生成服务的异步部分。一切似乎都正常,但在托管模式下运行(在 Jetty 中运行)和将生成的 WAR 部署到 Tomcat 时,servlet 都没有响应。

我现在的问题是 servlet 根本没有响应。调用了onSuccess() 回调,但我得到的只是null 值。我几乎从 GWT 主页复制了教程,所以我的服务是这样创建的:

final StatusServiceAsync statusService = GWT.create(StatusService.class);

这是我的服务接口:

@RemoteServiceRelativePath("status")
public interface StatusService extends RemoteService
{
    String getStatus(String someInput);
}

如前所述,异步对应项是由 Maven 插件生成的。 web.xml 如下所示:

<servlet>
   <servlet-name>statusServlet</servlet-name>
   <servlet-class>my.package.StatusServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>statusServlet</servlet-name>
  <url-pattern>/StatusBoard/status</url-pattern>
</servlet-mapping>
<welcome-file-list>
  <welcome-file>StatusBoard.html</welcome-file>
</welcome-file-list>

起初,我认为配置完全错误,所以我尝试了一下。当我更改&lt;servlet-class&gt; 值时,servlet 容器记录了ClassNotFoundException。然后我更改了@RemoteServiceRelativePath 我也得到了一个错误。所以配置不能全错。

这是服务器端代码(我将其剥离以确保没有其他问题):

public class StatusServiceImpl extends RemoteServiceServlet implements StatusService
{
    private static final long serialVersionUID = 3317511632727461036L;

    @Override
    public String getStatus(final String someInput)
    {
        return someInput;
    }
}

抱歉,我忘记了这个细节,但有时,调试器无法识别 servlet 中的断点。但即使这样,返回的值仍然是null

非常感谢任何想法!

【问题讨论】:

  • 以防万一:您的 servlet 是否继承自 RemoteServiceServlet 并实现了 StatusService?
  • 您可以使用 Firebug(用于 Firefox)来嗅探请求/响应(网络选项卡)并检查请求和响应。我可以将您的请求/响应与我的项目进行比较以查看差异...
  • 是的,servlet 确实继承自 RemoteServiceServlet 并实现了服务接口。
  • 您的 GWT 模块是否命名为“StatusBoard”,或者您是否设置了“重命名为”名称?
  • @Jason 和 Robert:你们中的一个人应该将其发布为答案,然后 Robert 应该将其标记为已接受。罗伯特:在标题中加上“[已解决]”并不是表明问题已被接受的答案的正确方式。

标签: gwt servlets maven


【解决方案1】:

默认情况下,您的 GWT 应用程序具有来自模块名称的基本 URL。如果您在 gwt.xml 文件中使用了“rename-to”属性,那么该值将是您的基本 URL。在这种情况下,查看您的 web.xml 条目,您的模块应命名为“StatusBoard”。或者将您的 URL 更改为您的“重命名为”值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多