2017-10-16 137 views
1

我在將swagger集成到我的項目中時遇到了一個問題。我在我現有的球衣api中集成了swagger(如described),並部署在weblogic服務器上。由於有不同的模塊,所以weblogic中已經有很少的罐子可用了,因此我面臨着衝突問題。以下是我所做的詳細說明。Swagger Core Jersey 2.X項目設置1.5

的pom.xml

<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jersey2-jaxrs</artifactId> <version>1.5.0</version> </dependency> 

DemoApplication.java

public class DemoApplication extends ResourceConfig { 

public DemoApplication() { 
    super(io.swagger.jaxrs.listing.ApiListingResource.class,io.swagger.jaxrs.listing.SwaggerSerializers.class); 
    configSwagger(); 
} 

private void configSwagger() { 
    BeanConfig beanConfig = new BeanConfig(); 
    beanConfig.setVersion("1.0.0"); 
    beanConfig.setBasePath("/demo/rest/v1"); 
    beanConfig.setResourcePackage(DemoApplication.class.getPackage().getName()); 
    beanConfig.setScan(true); 
} 

}

而且我的樣本資源類就像

@Path("/ping") 
@Api(tags = {"/ping"}) 
public class DemoServiceV1 { 

//some code 


} 

當我部署在WebLogic應用它給 例外,因爲

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

我試圖弄明白,發現有weblogic的模塊中的兩個不同版本的罐子

com.fasterxml.jackson.core.jackson-databind_2.3.2.jar

com.fasterxml.jackson.core.jackson-databind_2.4.3.jar

和weblogic挑選

com.fasterxml.jackson.core.jackson-databind_2.3.2.jar

by def沒有findPropertyIndex方法的aults。 我甚至試圖保留上述jar,即APP-INF/lib中的com.fasterxml.jackson.core.jackson-databind_2.3.2.jar,但它仍然不加載jar。

任何一個可以幫助上述問題? Swagger整合對我來說是全新的。

回答

0

您可以嘗試使用weblogic工具(wls-cat)來查找JAR衝突。您可以使用此網址瀏覽http://localhost:port/wls-cat/。該工具將幫助您瞭解您的JAR是否已正確加載。如果有衝突,它可以告訴你在哪個JAR中。通過使用此工具,您還可以定義JAR的加載優先級。 希望這有助於。

+0

CAT是一個獨立的Web應用程序,作爲單個WAR文件(WL_HOME/server/lib/wls-cat.war)分發。它僅作爲內部按需應用程序部署在開發模式中,部署在首次訪問時發生。如果服務器在生產模式下運行,它不會自動部署,但您可以手動部署它,就像任何其他Web應用程序一樣。 –