Swagger Core Jersey 2.X项目设置1.5

时间:2017-10-16 10:02:21

标签: rest swagger jersey-2.0 swagger-ui swagger-2.0

我在项目中集成swagger时遇到了问题。我在现有的球衣api中集成了swagger(如described)并部署在weblogic服务器上。由于存在不同的模块,因此weblogic中几乎没有可用的jar,因此我面临着冲突问题。以下是我所做的详细说明。

的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 /杰克逊/数据绑定/反思/注释;)Ljava /郎/整数

我试图搞清楚,发现weblogic模块中有两个不同版本的jar用于

  

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

默认情况下没有findPropertyIndex方法。 我甚至尝试在APP-INF / lib中保留上面的jar,即com.fasterxml.jackson.core.jackson-databind_2.3.2.jar,但它仍然没有加载jar。

任何人都可以帮助解决上述问题吗? Swagger整合对我来说是全新的。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用weblogic工具(wls-cat)来查找JAR冲突。您可以使用此网址http://localhost:port/wls-cat/进行浏览。此工具将帮助您了解您的JAR是否正确加载。如果存在冲突,它可以告诉您哪个JAR。通过使用此工具,您还可以定义要加载的JAR优先级。 希望这会有所帮助。