Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自不同包的Java访问筛选器_Java_Jersey - Fatal编程技术网

来自不同包的Java访问筛选器

来自不同包的Java访问筛选器,java,jersey,Java,Jersey,我随后为Jersey 1.x构建了一个过滤器。如果filter类(即MyAppFilter)与endpoints类位于同一个包中,它就可以正常工作 我的问题是,如何使这个过滤器在多个包中可用。例如,我使用包A和包B创建了两个OSGI包,而不是为每个包创建过滤器。我想在一个包/包中创建一个过滤器,并在另一个包中使用它 包A:我创建了过滤器类MyAppFilter.java 包B:我创建web.xml来使用过滤器 <servlet> <servlet-name>J

我随后为Jersey 1.x构建了一个过滤器。如果filter类(即MyAppFilter)与endpoints类位于同一个包中,它就可以正常工作

我的问题是,如何使这个过滤器在多个包中可用。例如,我使用包A和包B创建了两个OSGI包,而不是为每个包创建过滤器。我想在一个包/包中创建一个过滤器,并在另一个包中使用它

包A:我创建了过滤器类MyAppFilter.java

包B:我创建web.xml来使用过滤器

<servlet>  
    <servlet-name>Jersey REST Service</servlet-name>  
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>  
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>packageA.MyAppFilter</param-value>
    </init-param>
</servlet>

泽西岛休息服务
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.spi.container.ContainerRequestFilters
packageA.MyAppFilter
我尝试过这个场景,但它对我不起作用


感谢您的帮助

您的Jersey 1.x过滤器无法与Jersey 2.x配合使用。servlet类的
ServletContainer
是2.x。Jersey 2.x还有一个
containerRexxFilter
。但方案不同。其次,您正在使用的init参数也适用于1.x,它对2没有影响。x@peeskillet很抱歉1.x和2.x之间的混合。这是我的打字错误。我编辑这个问题是为了更好地解释我的情况。你是在问如何使它与不同的项目(战争)一起工作吗。我不太明白关于不同包装的全部问题。为什么我们需要为过滤器使用不同的软件包?也许您需要更好地解释“使此过滤器在各种包中工作”。不太清楚那是什么means@peeskillet感谢您的建议,它们是OSGI捆绑包。为什么不创建一个可重用组件库并将其包含在每个捆绑包中呢。