首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用web.xml配置Grizzly

使用web.xml配置Grizzly
EN

Stack Overflow用户
提问于 2012-01-25 03:45:01
回答 1查看 2.8K关注 0票数 12

我可以启动grizzly并在上面部署Jersey webservices,如下所示。

代码语言:javascript
复制
protected HttpServer create() throws Throwable {
  ResourceConfig rc = new PackagesResourceConfig("com.resource", "com.provider");
  HttpServer server = GrizzlyServerFactory.createHttpServer(uri, rc);
  return server;
}

但是有没有一种方法可以用web.xml代替ResourceConfig呢?

代码语言:javascript
复制
<web-app>
  <servlet>
    <servlet-name>Jersey</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.resource, com.provider</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>Jersey</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
EN

回答 1

Stack Overflow用户

发布于 2015-08-27 04:55:53

似乎目前还没有直接的方法来配置grizzly的web.xml。然而,我使用了部分解决方案,这可能是一个开始。

web.xml

首先要理解解决方案,我们必须理解使用web.xml的意义。它主要用于配置您web应用程序(有关更多详细信息,请参阅此answer )。在本例中,我们为servlet配置init-params

(部分)解决方案

我们可以使用Grizzly作为我们的servlet并初始化参数,而不是使用web.xmlResouceConfig.class。例如

代码语言:javascript
复制
<web-app>
  <servlet>
    <servlet-name>Jersey</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.resource, com.provider</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>Jersey</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>

会给出类似这样的东西:

代码语言:javascript
复制
protected HttpServer create() throws Throwable {
    HashMap<String, String> initParams = new HashMap<>();

    //ServerProperties.PROVIDER_PACKAGES is equal to "jersey.config.server.provider.packages"
    initParams.put(ServerProperties.PROVIDER_PACKAGES, "com.resource,com.provider");

    //Make sure to end the URI with a forward slash
    HttpServer server = GrizzlyWebContainerFactory.create("http://localhost:8080/", initParams);
    return server;
}

这样,我们就可以放置我们想要的所有init-params。但是,此解决方案不能取代整个web.xml

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8993065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档