【问题标题】:RESTful services layer not being mapped by Jetty embeddedJetty 没有映射 RESTful 服务层
【发布时间】:2013-11-30 00:54:40
【问题描述】:

我正在 Jetty 的嵌入式实例中运行 Web 应用程序。该应用程序已使用 Vaadin 以及一层 RESTful 服务实现。一切似乎都很好,只是服务层无法访问。对这一层的所有请求似乎都由 Vaading servlet 处理,而不是由 Jersey servlet 处理。

问题似乎与文件web.xml 的加载无关,因为该文件中声明的其他元素(例如侦听器)工作正常。让我感到困惑的是,当服务器没有作为嵌入式实例运行时,服务层可以正常工作(每个请求都由正确的 servlet 分派)。

我使用的代码如下:

this.server = new Server();
ServerConnector httpConnector = new ServerConnector(this.server);
httpConnector.setHost("localhost");
httpConnector.setPort(this.port);
httpConnector.setIdleTimeout(30000);
server.addConnector(httpConnector);

WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/");
if (resourcePath.toLowerCase().endsWith(".war")) {
    webapp.setWar(resourcePath);
} else {
    webapp.setResourceBase(resourcePath);
    webapp.setDescriptor(resourcePath + "/WEB-INF/web.xml");                
}

webapp.setParentLoaderPriority(true);

this.server.setHandler(webapp);
this.server.setStopAtShutdown(true);
this.server.start();

我还尝试以编程方式添加 servlet 的处理程序,但没有奏效。我写了这样的东西:

ServletHolder vaadinHolder = new ServletHolder(
    "Application",
    com.vaadin.terminal.gwt.server.ApplicationServlet.class);
vaadinHolder.setInitParameter("application", "com.yyy.MyApplication");
webapp.addServlet(vaadinHolder, "/*");

ServletHolder jerseyHolder = new ServletHolder(
    "JerseyServices",
    com.sun.jersey.spi.container.servlet.ServletContainer.class);
jerseyHolder.setInitParameter(
    "com.sun.jersey.config.property.packages", "com.yyy.services");
jerseyHolder.setInitOrder(1);
webapp.addServlet(jerseyHolder, "/resources/*");

【问题讨论】:

    标签: java servlets jersey jetty


    【解决方案1】:

    我解决了这个问题。它与 ContextPath 相关。一旦我将值 / (root context) 替换为为此应用程序选择的上下文名称,一切都开始正常工作。

    WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/app-context");
    

    我在这里留下评论,以防将来有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-22
      • 2013-08-13
      • 2016-01-09
      • 1970-01-01
      • 2016-10-14
      • 2010-12-22
      • 2013-01-14
      • 1970-01-01
      相关资源
      最近更新 更多