在Weblogic 12.1.1上使用Jersey 2.x Web服务

我正在尝试将Jersey 2.13 Web服务部署到Weblogic 12.1.1。此版本的weblogic符合JSR-311 JAX-RS

1.1规范,而Jersey 2.x提供了JAX-RS 2.0的实现。

Oracle提供了有关如何升级Jersey JAX-RS

RI版本的说明:http

:

//docs.oracle.com/cd/E24329_01/web.1211/e24983/version.htm

但是,即使这样也无助于解决所有部署问题。

我将应用程序打包在包含WAR的EAR中。为了覆盖weblogic jar,我添加了以下 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">

<prefer-application-packages>

<!-- apis -->

<package-name>javax.ws.rs.*</package-name>

<!-- guava -->

<package-name>com.google.common.*</package-name>

<!-- jersey1 providers -->

<package-name>com.sun.jersey.*</package-name>

<!-- media providers -->

<package-name>org.eclipse.persistence.jaxb.rs.*</package-name>

<package-name>org.codehaus.jackson.jaxrs.*</package-name>

<!-- wls -->

<package-name>weblogic.jaxrs.api.client.*</package-name>

<package-name>weblogic.jaxrs.internal.api.client.*</package-name>

<package-name>weblogic.jaxrs.dispatch.*</package-name>

<package-name>weblogic.jaxrs.monitoring.util.*</package-name>

</prefer-application-packages>

</weblogic-application>

此配置在部署时给我以下错误消息:

Caused By: java.lang.NoSuchMethodError: org.glassfish.hk2.api.ServiceLocatorFactory.create(Ljava/lang/String;Lorg/glassfish/hk2/api/ServiceLocator;Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;Lorg/glassfish/hk2/api/ServiceLocatorFactory$CreatePolicy;)Lorg/glassfish/hk2/api/ServiceLocator;

如果我尝试通过将org.glassfish.hk2。类添加到preferred -application-packages中*

来替换它,则会收到新的错误,并且它将永远持续下去…

是否有人在Weblogic 12.1.1或更低版本上将Jersey迁移到版本2.x?

谢谢!

回答:

最后,事实证明,您实际上必须替换比Oracle建议更多的jar。这是我的weblogic-application.xml的样子:

 <prefer-application-packages>

<package-name>com.sun.jersey.*</package-name>

<package-name>org.glassfish.jersey.*</package-name>

<package-name>org.glassfish.hk2.*</package-name>

<package-name>org.jvnet.hk2.*</package-name>

<package-name>jersey.repackaged.org.objectweb.asm.*</package-name>

<package-name>com.sun.research.ws.wadl.*</package-name>

<package-name>com.sun.ws.rs.ext.*</package-name>

<package-name>org.codehaus.jackson.*</package-name>

<package-name>com.fasterxml.jackson.*</package-name>

<package-name>org.codehaus.jettison.*</package-name>

<package-name>javax.ws.rs.*</package-name>

<package-name>org.objectweb.asm.*</package-name>

<package-name>antlr.*</package-name>

</prefer-application-packages>

希望能帮助到你。

以上是 在Weblogic 12.1.1上使用Jersey 2.x Web服务 的全部内容, 来源链接: utcz.com/qa/412542.html

回到顶部