2017-10-16 6 views
1

Je suis confronté à un problème lors de l'intégration de Swagger dans mon projet. J'ai intégré swagger (comme described) dans mon api jersey existant et déployé sur le serveur weblogic. Comme il existe différents modules, il y a déjà peu de jars disponibles dans weblogic et à cause de cela, je suis confronté à des problèmes de conflits. Voici une description détaillée de ce que j'ai fait.Swagger Core Jersey 2.X Configuration du projet 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); 
} 

}

Et mon échantillon classe de ressources est comme

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

//some code 


} 

Pendant que je déploie l'application sur weblogic il donne exception comme

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

j'ai essayé de le comprendre et a constaté qu'il ya deux pots de version différentes dans le module weblogic pour

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

et

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

et weblogic prend

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

par def aults qui n'a pas de méthode findPropertyIndex. J'ai même essayé de garder le jar ci-dessus, c'est-à-dire com.fasterxml.jackson.core.jackson-databind_2.3.2.jar dans APP-INF/lib mais il ne charge pas le jar.

Quelqu'un peut-il aider dans le problème ci-dessus? L'intégration de Swagger est totalement nouvelle pour moi.

Répondre

0

Vous pouvez essayer l'outil weblogic (wls-cat) pour connaître les conflits JAR. Vous pouvez naviguer en utilisant cette URL http://localhost:port/wls-cat/. Cet outil vous aidera à comprendre si vos fichiers JAR sont correctement chargés ou non. S'il y a un conflit, il peut vous dire dans quel JAR. En utilisant cet outil, vous pouvez également définir la priorité des JAR à charger. J'espère que cela aide.

+0

CAT est une application Web autonome, distribuée sous la forme d'un seul fichier WAR (WL_HOME/server/lib/wls-cat.war). Il est déployé en tant qu'application interne à la demande uniquement en mode développement et le déploiement se produit lors du premier accès. Si le serveur fonctionne en mode production, il n'est pas déployé automatiquement mais vous pouvez le déployer manuellement, comme n'importe quelle autre application Web. –