2017-10-16 8 views
1

프로젝트에서 swagger를 통합하는 중에 문제가 발생합니다. 내 기존 저지 API에 swagger (described)를 통합하고 weblogic 서버에 배포했습니다. 다른 모듈이 있으므로 이미 웹 로직에서 사용할 수있는 항아리가 거의 없기 때문에 충돌 문제가 발생합니다. 다음은 내가 한 일에 대한 자세한 설명입니다. 내가 웹 로직에 응용 프로그램을 배포하는 동안Swagger Core Jersey 2.X Project Setup 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 


} 

같다 그것은 준다 예외

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

같이 I 알아낼하려고 및 로직 모듈의 두 가지 버전 항아리

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

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

위해 있다는 것을 발견 로직은

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

을 집어

에 의해 def findPropertyIndex 메소드가없는 aults. 위의 jar 즉 APP-INF/lib에있는 com.fasterxml.jackson.core.jackson-databind_2.3.2.jar를 유지하려고 시도했지만 여전히 jar 파일을로드하지 않습니다.

위의 문제에 도움을 줄 수 있습니까? Swagger 통합은 완전히 새로운 것입니다.

답변

0

weblogic 도구 (wls-cat)를 사용하여 JAR 충돌을 확인할 수 있습니다. 이 URL을 사용하여 검색 할 수 있습니다 http://localhost:port/wls-cat/. 이 도구는 JAR이 제대로로드되었는지 여부를 이해하는 데 도움이됩니다. 충돌이 있으면 어떤 JAR인지를 알 수 있습니다. 이 도구를 사용하여로드 할 JAR 우선 순위를 정의 할 수도 있습니다. 희망이 도움이됩니다.

+0

CAT은 독립 실행 형 웹 응용 프로그램이며 단일 WAR 파일 (WL_HOME/server/lib/wls-cat.war)로 배포됩니다. 개발 모드에서만 내부 주문형 응용 프로그램으로 배포되며 배포는 첫 번째 액세스시 발생합니다. 서버가 프로덕션 모드에서 실행 중이면 자동으로 배포되지 않지만 다른 웹 응용 프로그램과 마찬가지로 수동으로 배포 할 수 있습니다. –