未找到 Java 类 java.util.ArrayList...和 ​​MIME 媒体类型 text/xml 的消息正文编写器

2024-04-25

我使用 Jersey 构建 REST 服务并希望返回Collection<String> as XML.

@GET
@Produces(MediaType.TEXT_XML)
@Path("/directgroups")
public Response getDirectGroupsForUser(@PathParam("userId") String userId) {
    try {
        Collection<String> result = service.getDirectGroupsForUser(userId, null, true);

//      return result; //first try
//      return result.toArray(new String[0]); //second try
        return Response.ok().type(MediaType.TEXT_XML).entity(result).build(); //third try
    } catch (UserServiceException e) {
        LOGGER.error(e);
        throw new RuntimeException(e.getMessage());
    }
}

但我的尝试失败了,但有以下例外:

javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java 类 java.util.ArrayList 和 Java 类型类 java.util.ArrayList 的消息正文编写器,并且 MIME 媒体类型 text/xml 不是成立

我通过谷歌发现的该异常的所有结果都处理返回 text/json 而不是像我的情况一样的 text/xml 。

谁能帮我?我想,如果我使用响应,那将是我在 XML 中的根元素,我的集合是其中的字符串元素列表。


Use

List<String> list = new ArrayList<String>();
GenericEntity<List<String>> entity = new GenericEntity<List<String>>(list) {};
Response response = Response.ok(entity).build();

通用实体包装器用于在使用响应构建器时获取输出。

参考 http://jackson.codehaus.org/javadoc/jax-rs/1.0/javax/ws/rs/core/GenericEntity.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未找到 Java 类 java.util.ArrayList...和 ​​MIME 媒体类型 text/xml 的消息正文编写器 的相关文章

随机推荐