我在项目中集成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整合对我来说是全新的。
答案 0 :(得分:0)
您可以尝试使用weblogic工具(wls-cat)来查找JAR冲突。您可以使用此网址http://localhost:port/wls-cat/进行浏览。此工具将帮助您了解您的JAR是否正确加载。如果存在冲突,它可以告诉您哪个JAR。通过使用此工具,您还可以定义要加载的JAR优先级。 希望这会有所帮助。