2012-10-25 28 views
0

我是JAX-RS的新手。我想代表名單,以JSON數組:當試圖用Apache Wink生成JSON數組時,我得到了WebApplicationException

@GET 
@Produces(MediaType.APPLICATION_JSON) 
@Path("/getUsersResource/{userId}") 
public List<AbstractResource> getUsersResources(@PathParam("userId") final String userId) { 
    if (userId == null) { 
     return null; 
    } 

    User user = null; 

    try { 
     user = userDao.getUserById(Integer.parseInt(userId)); 
    } catch (NumberFormatException nfe) { 
     user = userDao.getUser(userId); 
    } 

    if (user == null) { 
     return null; 
    } 

    return abstractResourceDao.getUsersResources(null, user.userId); 
} 

當我執行這個網址獲得:

{ 「異常」:{ 「名」: 「WebApplicationException」}}

我註解我AbstractResource類只有@XmlRootElement,當我改變@Produces註釋參數

@Produces(MediaType.APPLICATION_XML)

我得到正確的結果。這是我的web.xml:

<servlet> 
    <servlet-name>REST Application</servlet-name> 
    <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.balthaser.b3e.rest.RESTApplication</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet> 
    <servlet-name>REST Client</servlet-name> 
    <servlet-class>com.balthaser.b3e.rest.client.RESTClient</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
    <servlet-mapping> 
    <servlet-name>REST Client</servlet-name> 
    <url-pattern>/rest/index.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>REST Application</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 

是否有任何額外的要求生產JSON數組時?

回答

相關問題