【问题标题】:How to configure different filter and jersey servlet for 2 url patterns in web.xml?如何为 web.xml 中的 2 个 url 模式配置不同的过滤器和 jersey servlet?
【发布时间】:2018-01-15 11:20:08
【问题描述】:

我为请求创建了不同的过滤器。我在 web.xml 中完成了以下配置:

<servlet>
        <servlet-name>jersey</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
            <param-value>com.core.api.filter.Filter1</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey</servlet-name>
        <url-pattern>/v1/*</url-pattern>
    </servlet-mapping>

      <servlet>
        <servlet-name>jersey</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
            <param-value>com.core.api.filter.Filter2</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey</servlet-name>
        <url-pattern>/v2/*</url-pattern>
    </servlet-mapping>

但在服务器启动时,我遇到了异常:

... 6 more

原因:javax.naming.NameNotFoundException: com -- service jboss.naming.context.java.com 在 org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:106) 在 org.jboss.as.naming.NamingContext.lookup(NamingContext.java:207) 在 org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:235) 在 org.jboss.as.naming.NamingContext.lookup(NamingContext.java:193) 在 org.jboss.as.naming.NamingContext.lookup(NamingContext.java:189) 在 javax.naming.InitialContext.lookup(InitialContext.java:417) 在 javax.naming.InitialContext.lookup(InitialContext.java:417) 在 com.sun.jersey.server.impl.cdi.CDIExtension$2.stepInto(CDIExtension.java:311) 在 com.sun.jersey.server.impl.cdi.CDIExtension.diveIntoJNDIContext(CDIExtension.java:288) 在 com.sun.jersey.server.impl.cdi.CDIExtension.lookupJerseyConfigJNDIContext(CDIExtension.java:308) 在 com.sun.jersey.server.impl.cdi.CDIExtension.getInitializedExtension(CDIExtension.java:231) ... 23 更多

16:20:25,252 错误 [org.jboss.as.controller.management-operation](控制器引导线程)​​WFLYCTL0013:操作(“部署”)失败 - 地址:

我尝试用谷歌搜索,但没有找到太多帮助。

请帮我摆脱这个问题.....

提前致谢

【问题讨论】:

    标签: java jakarta-ee web.xml jersey-2.0


    【解决方案1】:

    如果您需要使用两个不同的过滤器,您可能必须使用&lt;filter-mapping&gt; 标签。

    来自this

    <filter>
        <filter-name>Compression Filter</filter-name>
        <filter-class>CompressionFilter</filter-class>
        <init-param>
            <param-name>compressionThreshold</param-name>
            <param-value>10</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Compression Filter</filter-name>
        <servlet-name>CompressionTest</servlet-name>
    </filter-mapping>
    <servlet>
        <servlet-name>CompressionTest</servlet-name>
        <servlet-class>CompressionTest</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CompressionTest</servlet-name>
        <url-pattern>/CompressionTest</url-pattern>
    </servlet-mapping>
    

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 2021-01-21
      • 2012-08-02
      • 2012-07-23
      • 2013-05-28
      相关资源
      最近更新 更多