我已经编写了一系列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
出现在任何地方,因此绝对不是我身边添加的东西。
以前有人遇到过吗?我知道我还没有,所以我不知道为什么会这样。有什么想法吗?
答案 0 :(得分:1)
确保您的数据传输对象(例如com.test.MyObject)使用@XmlRootElement而不是@XmlElement进行注释。如果不是,这可能是原因...