2016-11-15 92 views
0

我有一個工作的澤西島和Swagger的Tomcat設置,但現在我必須使它在Weblogic 12c(12.2.1)上工作。我嘗試了幾種不同的方式來實現它的工作,但我已經結束了各種死路。我在JDeveloper中這樣做。Weblogic 12c,澤西島和Swagger的工作設置

我已經結束了傑克遜版本問題和其他類似的碰撞,我試過的每一種方式。我已經得到澤西與Weblogic合作,但不是Swagger。

如果有幫助,我可以使用舊版本。

這是我的聚甲醛的一部分,從我最近一次故障:

<dependency> 
     <groupId>io.swagger</groupId> 
     <artifactId>swagger-jersey2-jaxrs</artifactId> 
     <version>1.5.10</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle.weblogic</groupId> 
     <artifactId>javax.ws.rs.javax.ws.rs-api</artifactId> 
     <version>12.2.1-0-0</version> 
    </dependency> 

這給

org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.AnnotationIntrospector.findPropertyIndex(Lcom/fasterxml/jackson/databind/introspect/Annotated;)Ljava/lang/Integer; 

我的理解是由於Glassfish的/傑克遜版的問題。

TL;博士
我在尋找一個Hello World對於WebLogic 12 /新澤西/揚鞭

回答

0

似乎是在傑克遜罐子的版本有差異。傑克遜jars的新版本(不包含在jersey2.x中)包含com.fasterxml.jackson包,而舊版的Jersey 1.x包含org.codehaus.jackson包。

無論哪種方式,我們總是可以在我們的依賴項中包含最新版本的jackson。

+0

相當長一段時間過去了,因爲我問這個問題。我已經走上了另一條道路,所以我不再需要這種需求。爲了分享知識,如果您有解決問題的方法 - 請分享! – Sam

1

WebLogic Server提供了一個老版本的Jackson,它與Swagger所需的版本相沖突。 告訴WebLogic中使用嵌入在你的戰爭之一,以下內容添加到您的weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-web-app xmlns="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"> 
    (...) 
    <container-descriptor> 
     <prefer-application-packages> 
      <package-name>com.fasterxml.jackson.*</package-name> 
     </prefer-application-packages> 
    </container-descriptor> 
    (...) 
</weblogic-web-app>