网络博客12.2中的泽西岛1.18

时间:2016-01-29 10:27:52

标签: web-services jersey weblogic12c

我在weblogic 12.1 服务器(工作地点)中有一个网络服务,我现在必须在新的weblogic 12.2 服务器中进行传输。在我的WEB-INF / lib jars中,我有jersey 1.18文件。然而,当我部署它时,似乎Jersey 1.18被Jersey 2.21覆盖并且通过调用Web服务我得到“404 not found error”。 Application.wadl现在有<ns0:doc ns1:generatedBy="Jersey: 2.21.1 2015-09-16..."/>所以我猜这就是问题所在。

我尝试将weblogic.xml文件放在WEB-INF中:

<container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>

但没有改变。我如何强制使用Jersey 1.18?

3 个答案:

答案 0 :(得分:1)

weblogic 12.2.x不再支持jersey 1.x服务器api。最好使用球衣2.x api。对于404问题,我认为您可以使用此链接更改您的应用。

http://docs.oracle.com/middleware/1221/wls/RESTF/jersey-back-comp.htm#RESTF385

答案 1 :(得分:0)

您可以通过更改web.xml来解决此问题:
之前:
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
后:
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

答案 2 :(得分:-1)

实施所需库版本的更安全的方法是在weblogic.xml文件中使用shared-libs和reference。这是一个示例,您可以看看:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app 
           http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd">

    <wls:library-ref>
       <library-name>jax-rs</library-name>
       <specification-version>2.0</specification-version>
       <exact-match>false</exact-match>
    </wls:library-ref>
</wls:weblogic-web-app>

我邀请您访问此link以获取有关如何在weblogic实例上将您的jersey lib注册为共享库的详细过程。