2016-11-24 178 views
1

RESTEAsy WADL生成器包含在我们的应用程序How to generate wadl file for resteasy in jboss中。 在JBoss EAP 6.4中完成的部署成功。但在访问WADL生成URL http://host:8080/rest-serviceapp/application.xml,它产生以下错误 -使用RESTEasy wadl生成器生成的Nullpointerexception

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) 

我们使用的web.xml文件是 -

<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>  

的RestEasy的-WADL依赖是 -

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

REST服务comsumes /产生JSON。 为什么WADL/xml代以nullpointer异常结束?我们正在犯的错误是什么?

+0

您是否解决了您的问题? –

回答

0

我对Wildfly 10.1.0有同样的问题。

我使用resteasy-wadl 3.0.19修复了它,因为所有其他resteasy库在Wildfly 10.1.0上都有此版本。

我也不得不排除RestEasy的-JAXRS库中的POM,否则RestEasy的-JAXRS库被列入我的战争,导致了问题:

<!-- 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> 

此外,如果使用其他版本比版本的resteasy库已经安装在你的JBoss中,这些resteasy库(resteasy-jaxrs ...)将作为resteasy-wadl库的依赖被第二次安装。这些重复的库似乎会导致很多冲突。