Java 如何向应用程序添加更多jax-rs组件?

Java 如何向应用程序添加更多jax-rs组件?,java,jax-rs,resteasy,wildfly,ear,Java,Jax Rs,Resteasy,Wildfly,Ear,我想将@Provider ContainerRequestFilter添加到我的web项目中,该项目已在我当前项目依赖的另一个项目中定义。因此,该项目的所有提供者都可用于该项目。这两场战争都被包装成ear并部署到wildfly。但是,由于这两个web项目的上下文根不同(或者两者都是不同的web应用程序),因此@Provider只在第一个项目中为jax rs资源工作 因此,我想通过以下方式手动添加提供程序: public MyApplication extends Application{

我想将@Provider ContainerRequestFilter添加到我的web项目中,该项目已在我当前项目依赖的另一个项目中定义。因此,该项目的所有提供者都可用于该项目。这两场战争都被包装成ear并部署到wildfly。但是,由于这两个web项目的上下文根不同(或者两者都是不同的web应用程序),因此@Provider只在第一个项目中为jax rs资源工作

因此,我想通过以下方式手动添加提供程序:

 public MyApplication extends Application{
    Set<..> getClasses(){
       //add provider here
    }
 }
公共MyApplication扩展应用程序{
设置getClasses(){
//在此处添加提供程序
}
}
如果我们将该方法留空,那么所有jax-rs资源都将自动注册。但是我们定义了该方法,只有在该方法中注册的类被注册为资源类。那么,我想添加保持其他资源的所有默认加载的提供程序,而不必在此方法中添加它们


怎么做?或者,是否有一种方法可以在第二个项目的web.xml中添加一些条目,以使用第一个项目中的ContainerRequestFilter?我可以将其添加到“过滤器映射”下吗?

您是说您正在使用一个war作为另一个war的库吗?这行得通吗?为什么不创建一个包含公共类的jar并将其作为两个项目的库呢?当类路径扫描时,JAR会自动扫描以拾取
@Provider
类。我的第二个项目依赖于第一个项目。所以第一个项目的所有类都可以在这个项目中使用。我已经在使用许多类似的实用程序类。这两个项目都是web应用程序,但都是ear应用程序的一部分。因此,第二个项目的jax-rs没有注册第一个项目中定义的提供者。但是,如果我们以EJB为例,第一个项目中定义的@AroundInvoke拦截器可以在第二个项目中使用,因为我们显式地注释了使用拦截器的资源。但对于过滤器,我没有办法。