Java org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:找不到的MessageBodyWriter。。。媒体类型:application/xml;字符集=UTF-8

Java org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:找不到的MessageBodyWriter。。。媒体类型:application/xml;字符集=UTF-8,java,xml,jaxb,jax-rs,wildfly,Java,Xml,Jaxb,Jax Rs,Wildfly,我已经编写了一系列JAX-RS服务,它们部署在Wildfly 11上的WAR文件中。我在它们上面有@products({MediaType.APPLICATION\u JSON,MediaType.APPLICATION\u XML})注释,表示我希望从服务接收JSON或XML作为响应。我有一系列用JAXB注释的数据传输对象。这些是我的服务将返回的对象。我已经使用JSON进行了测试,一切正常。但是,当我使用“Accept:application/xml”头进行测试以便返回xml时,我在日志中遇到

我已经编写了一系列JAX-RS服务,它们部署在Wildfly 11上的WAR文件中。我在它们上面有
@products({MediaType.APPLICATION\u JSON,MediaType.APPLICATION\u XML})
注释,表示我希望从服务接收JSON或XML作为响应。我有一系列用JAXB注释的数据传输对象。这些是我的服务将返回的对象。我已经使用JSON进行了测试,一切正常。但是,当我使用
“Accept:application/xml”
头进行测试以便返回xml时,我在日志中遇到了以下异常:

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

我不知道
在哪里;charset=UTF-8
来自。我没有在我的
Accept
标题中指定这一点。我也没有看到
;当我使用
application/json
作为我的
Accept
类型时,charset=UTF-8
任意位置。此外,我正在记录所有请求头,没有看到
;charset=UTF-8
出现在任何地方,因此它肯定不是我这边添加的东西


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

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

模型类中是否有默认构造函数?别担心这个角色。这与找不到提供程序无关。如果你有默认的构造函数,那么你可以发布模型类,这样我们就可以测试它了。你能展示针对
MyObject
properties发送的XML的示例吗?@PaulSamsothayes,我有一个默认值constructor@user7294900我正在执行一个POST,希望在收到异常时返回application/xml。您能提供您正在发送的xml示例吗?可能是invalidI在我的一个对象上缺少@XmlRootElement。对于JSON,这不是必需的,但是对于XML,这是问题的原因。