我是 JAX-RS 的新手。我正在尝试将 List 表示为 JSON 数组:
@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”}}
我只用@XmlRootElement 注释了我的AbstractResource 类,当我将@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 数组时是否有任何其他要求?