将Jersey JAX-RS WAR部署到JBoss:ResourceConfig不可代理

将Jersey JAX-RS WAR部署到JBoss:ResourceConfig不可代理,jboss,jersey,jax-rs,Jboss,Jersey,Jax Rs,我有一个基于Jersey的web应用程序(基本上只有REST服务,没有演示),我希望将其部署到JBoss EAP 6.2服务器上。我首先遇到了所描述的问题,我能够用问题的形式来解决这个问题。但是,在部署WAR时,我遇到了JBoss引发的以下异常: 16:24:10142错误[org.jboss.msc.service.fail](msc服务线程1-3)MSC000001:无法启动服务jboss.deployment.unit。“搜索rest.war”。WeldStartService:org.j

我有一个基于Jersey的web应用程序(基本上只有REST服务,没有演示),我希望将其部署到JBoss EAP 6.2服务器上。我首先遇到了所描述的问题,我能够用问题的形式来解决这个问题。但是,在部署WAR时,我遇到了JBoss引发的以下异常:

16:24:10142错误[org.jboss.msc.service.fail](msc服务线程1-3)MSC000001:无法启动服务jboss.deployment.unit。“搜索rest.war”。WeldStartService:org.jboss.msc.service.StartException in service jboss.deployment.unit。“搜索rest.war”。WeldStartService:无法启动服务 在org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767)[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[rt.jar:1.8.0_111] 在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[rt.jar:1.8.0_111] 在java.lang.Thread.run(Thread.java:745)[rt.jar:1.8.0_111] 原因:org.jboss.weld.exceptions.UnproxyableResolutionException:weld-001437正常作用域bean类org.glassfish.jersey.server.ResourceConfig不可代理,因为类型是final或它包含final方法public final org.glassfish.jersey.server.ResourceConfig org.glassfish.jersey.server.ResourceConfig.setClassLoader(java.lang.ClassLoader)-带限定符[@Default@Any]的托管Bean[classmjb44.searchapp.rest.Application]。 位于org.jboss.weld.util.Proxies.GetUnproxiableClassException(Proxies.java:229) 位于org.jboss.weld.util.Proxies.getUnproxiableTypeException(Proxies.java:180) 位于org.jboss.weld.util.Proxies.GetUnproxiableTypesException(Proxies.java:195) 位于org.jboss.weld.util.Proxies.GetUnproxiableTypesException(Proxies.java:169) 位于org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:148) 位于org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:164) 位于org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:383) 位于org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:368) 位于org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:379) 位于org.jboss.as.weld.WeldStartService.start(WeldStartService.java:64) 在org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] 在org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] …还有3个

16:24:10350错误[org.jboss.as.server](DeploymentScanner threads-2)JBAS015870:部署“search rest.war”已回滚,并显示以下失败消息: {“JBAS014671:Failed services”=>{“jboss.deployment.unit.\“search rest.war\”.WeldStartService”=>“org.jboss.msc.service.StartException in service jboss.deployment.unit.\“search rest.war\”。WeldStartService:启动服务失败 原因:org.jboss.weld.exceptions.UnproxyableResolutionException:weld-001437正常作用域bean类org.glassfish.jersey.server.ResourceConfig不可代理,因为类型是final或它包含final方法public final org.glassfish.jersey.server.ResourceConfig org.glassfish.jersey.server.ResourceConfig.setClassLoader(java.lang.ClassLoader)-带限定符[@Default@Any]。“}}

我的应用程序定义如下:

import org.glassfish.jersey.server.ResourceConfig;
public class Application extends ResourceConfig {
    public Application () {
        register(mjb44.searchapp.filters.CORSFilter.class);
    }
}

…因此它既不是最终的,也不包含任何最终的方法。因此,问题显然与
org.glassfish.jersey.server.ResourceConfig
有关,但我无法控制。我还在JBoss论坛上开了一个讨论会。

仅供记录,迄今为止我从JBoss论坛收到的唯一回复是:

恐怕EAP上唯一支持的JAX-RS实现是RESTEasy

…这看起来很奇怪,因为我想如果我在WAR的
WEB-INF/lib
中提供JAX-RS实现,那么任何WEB容器都应该可以使用它