当我试图返回List时,它抛出了响应类ArrayList,但没有找到消息体编写器。
我有代码如下:
@POST
@Path("/{scope}/{application}/tables")
@Produces("application/xml")
public List<String> getTableNames(@PathParam("scope") String scope,
@PathParam("application") String application, Request request) {
// For example, I am returning a list of String
return new ArrayList<String>(4);
}
请帮帮我,先谢了
5条答案
按热度按时间qgzx9mmu1#
要返回一个列表,最好将其 Package 到一个标注为
@XmlRootElement
的容器中,并将列表作为字段提供给该容器,标注为@XmlElement
。就像这样:
xtfmy6hx2#
我已经将List添加到域层项目范围的现有对象中。
它更适合项目的上下文,而且也是开箱即用的:不需要测试XmlRootElement,但为该对象的现有测试用例列表添加测试数据+逻辑。
oxf4rvwz3#
在同一个项目中同时拥有org.codehaus.Jackson和com.fasterxml.jackson依赖项将导致此“无消息主体编写器”问题,无论注解如何。
在我的例子中,Bean由com.fasterxml.Jackson-〉jackson-jaxrs-json-provider进行编组,由org.codehaus进行解编组。jackson -〉jackson-jaxrs
所以删除/更新org.codehaus.Jackson到com.fasterxml.jackson的所有引用修复了这个问题。
我已经在cxf-servlet.xml、pom.xml和所有java类导入中更新了它。
pom.xml
cxf-servlet.xml中的提供程序
33qvvth14#
尝试使用泛型实体。
zrfyljdw5#
添加此Maven依赖项: