您需要执行以下步骤:
通过JVM属性禁用内置的JAX-RS,com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine=true请参阅此处的说明。
您可以通过Web管理控制台设置此属性Servers > WebSphere Application Servers > yourServerName。然后在Server Infrastructure部分Java and Process Management > Process definition > Java Virtual Machine > Custom properties。
在控制台中通过所有JAX-RS 2.10库创建隔离的共享库Environment > Shared Libraries。
Use an isolated class loader for this shared library在创建库时,通过检查“ 类加载”选项来创建隔离的共享库。
将此共享库映射到您的应用程序,无论是在安装期间还是稍后,通过Applications > appName > Shared library references。
重启应用服务器。在SystemOut.log中,您应该看到初始化JAX-RS类的消息:
[7/12/14 16:10:36:470 CEST] 0000004a JerseyServlet I Registering the Jersey servlet application, named javax.ws.rs.core.Application, with the following root resource and provider classes: [class jax.Hello, class org.glassfish.jersey.server.wadl.internal.WadlResource]
[7/12/14 16:10:36:688 CEST] 0000004a ApplicationHa I Initiating Jersey application, version Jersey: 2.10.1 2014-06-30 13:53:32...
UPDATE
似乎也可以从WAR中加载JAX-RS罐子。您必须设置此DisableIBMJAXRSEngine属性,并且需要更改模块(不在EAR级别)类加载器中的类加载选项Classes loaded with local class loader first (parent last)
在管理控制台中:
应用程序> WebSphere企业应用程序> {your.application}>管理模块> {your.module}
将类加载器顺序下拉列表更改为:Classes loaded with local class loader first (parent last)。
感谢dooffas检查它,请参阅没有隔离共享库的JAX-RS 2.0 WebSphere 8.5