【发布时间】:2018-03-27 19:37:33
【问题描述】:
在我的项目中集成 swagger 时遇到问题。我在现有的 jersey 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/jackson/databind/introspect/Annotated;)Ljava/lang/Integer
我试图弄清楚,发现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 方法。 我什至尝试将上面的 jar 即 com.fasterxml.jackson.core.jackson-databind_2.3.2.jar 保留在 APP-INF/lib 中,但它仍然没有加载 jar。
任何人都可以帮助解决上述问题吗? Swagger 集成对我来说是全新的。
【问题讨论】:
标签: rest swagger jersey-2.0 swagger-ui swagger-2.0