2016-11-24 4 views
1

Le générateur RESTEAsy WADL a été inclus dans notre application en référence How to generate wadl file for resteasy in jboss. Le déploiement effectué dans JBoss EAP 6.4 a réussi. Mais pour accéder aux URL de génération WADL http://host:8080/rest-serviceapp/application.xml, il génère l'erreur suivante -Nullpointerexception généré avec le générateur de wadl RESTEasy

java.lang.NullPointerException 
org.jboss.resteasy.wadl.ResteasyWadlWriter.getStringWriter(ResteasyWadlWriter.java:36) 
org.jboss.resteasy.wadl.ResteasyWadlWriter.getBytes(ResteasyWadlWriter.java:26) 
org.jboss.resteasy.wadl.ResteasyWadlServletWriter.writeWadl(ResteasyWadlServletWriter.java:32) 
org.jboss.resteasy.wadl.ResteasyWadlServletWriter.writeWadl(ResteasyWadlServletWriter.java:45) 
org.jboss.resteasy.wadl.ResteasyWadlServlet.service(ResteasyWadlServlet.java:55) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 

Le web.xml que nous utilisons est -

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 

<display-name>Restapp_Service</display-name> 

<context-param> 
    <param-name>resteasy.servlet.mapping.prefix</param-name> 
    <param-value>/resteasy</param-value> 
</context-param> 
<context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>true</param-value> 
</context-param> 
<context-param> 
    <param-name>resteasy.scan.providers</param-name> 
    <param-value>true</param-value> 
</context-param> 
<context-param> 
    <param-name>resteasy.scan.resources</param-name> 
    <param-value>true</param-value> 
</context-param>  
<listener> 
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 
</listener> 

<servlet> 
    <servlet-name>Resteasy</servlet-name> 
    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>RESTEasy WADL</servlet-name> 
    <servlet-class>org.jboss.resteasy.wadl.ResteasyWadlServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Resteasy</servlet-name> 
    <url-pattern>/resteasy/*</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>RESTEasy WADL</servlet-name> 
    <url-pattern>/application.xml</url-pattern> 
</servlet-mapping> 

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list>  

La dépendance de resteasy-WADL est -

<dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-wadl</artifactId> 
     <version>3.1.0</version> 
    </dependency> 

Le service REST comsume/produit du code JSON. Pourquoi la génération WADL/xml se termine-t-elle par une exception nullpointer? Quelle pourrait être la (les) erreur (s) que nous faisons?

+0

Avez-vous résolu votre problème? –

Répondre

0

J'ai eu le même problème sur Wildfly 10.1.0.

Je l'ai corrigé en utilisant resteasy-wadl 3.0.19 car toutes les autres bibliothèques de reprise ont cette version sur Wildfly 10.1.0.

Je devais aussi exclure la bibliothèque resteasy-jaxrs dans la pom, sinon la bibliothèque resteasy-jaxrs était inclus dans la guerre, l'origine du problème:

<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-wadl --> 
    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-wadl</artifactId> 
     <version>3.0.19.Final</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.jboss.resteasy</groupId> 
       <artifactId>resteasy-jaxrs</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

Aussi, si vous utilisez une autre version que la Version des bibliothèques resteasy déjà installées dans votre JBoss, ces bibliothèques de resteasy (resteasy-jaxrs ...) seront installées une seconde fois en dépendance de la librairie resteasy-wadl. Ces bibliothèques en double semblent causer beaucoup de conflits.