org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:找不到以下消息的MessageBodyWriter ...媒体类型:application / xml; charset = UTF-8

时间:2018-07-03 18:31:26

标签: java xml jaxb jax-rs wildfly

我已经编写了一系列JAX-RS服务,这些服务已部署在Wildfly 11的WAR文件中。它们上面带有@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })批注,表明我想接收JSON或XML作为来自服务。我有一系列使用JAXB注释注释的数据传输对象。这些是我的服务将返回的对象。我已经使用JSON进行了测试,并且一切正常。但是,当我使用"Accept: application/xml"标头进行测试以获取XML时,我的日志中出现以下异常:

  

org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:无法   查找类型为com.test.MyObject的响应对象的MessageBodyWriter   的媒体类型:application / xml; charset = UTF-8

我不确定;charset=UTF-8的来源。我没有在我的Accept标头中指定。当我使用;charset=UTF-8作为我的application/json类型时,在任何地方都看不到Accept。另外,我正在记录我所有的请求标头,并且看不到;charset=UTF-8出现在任何地方,因此绝对不是我身边添加的东西。

以前有人遇到过吗?我知道我还没有,所以我不知道为什么会这样。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

确保您的数据传输对象(例如com.test.MyObject)使用@XmlRootElement而不是@XmlElement进行注释。如果不是,这可能是原因...