org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: 找不到 MessageBodyWriter for... 媒体类型: application/xml;charset=UTF-8
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for... media type: application/xml;charset=UTF-8
我写了一系列JAX-RS服务部署在Wildfly 11的WAR文件中。我在它们上面有@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
注释,表明我想接收 JSON 或 XML 作为服务的响应。我有一系列用 JAXB 注释注释的数据传输 objects。这些是我的服务将返回的 objects。我已经使用 JSON 进行了测试,一切都按预期进行。但是,当我使用 "Accept: application/xml"
header 进行测试以便返回 XML 时,我的日志中出现以下异常:
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not
find MessageBodyWriter for response object of type: com.test.MyObject
of media type: application/xml;charset=UTF-8
我不确定 ;charset=UTF-8
来自哪里。我没有在我的 Accept
header 中指定。当我使用 application/json
作为我的 Accept
类型时,我也没有在任何地方看到 ;charset=UTF-8
。此外,我正在记录我所有的请求 header,并且没有看到 ;charset=UTF-8
出现在任何地方,所以这绝对不是我添加的东西。
有人遇到过这个吗?我知道我没有,所以我不知道为什么会这样。有什么想法吗?
确保您的数据传输对象(例如com.test.MyObject)使用@XmlRootElement 而非@XmlElement 进行注释。如果不是,这可能是原因...
我写了一系列JAX-RS服务部署在Wildfly 11的WAR文件中。我在它们上面有@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
注释,表明我想接收 JSON 或 XML 作为服务的响应。我有一系列用 JAXB 注释注释的数据传输 objects。这些是我的服务将返回的 objects。我已经使用 JSON 进行了测试,一切都按预期进行。但是,当我使用 "Accept: application/xml"
header 进行测试以便返回 XML 时,我的日志中出现以下异常:
org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: com.test.MyObject of media type: application/xml;charset=UTF-8
我不确定 ;charset=UTF-8
来自哪里。我没有在我的 Accept
header 中指定。当我使用 application/json
作为我的 Accept
类型时,我也没有在任何地方看到 ;charset=UTF-8
。此外,我正在记录我所有的请求 header,并且没有看到 ;charset=UTF-8
出现在任何地方,所以这绝对不是我添加的东西。
有人遇到过这个吗?我知道我没有,所以我不知道为什么会这样。有什么想法吗?
确保您的数据传输对象(例如com.test.MyObject)使用@XmlRootElement 而非@XmlElement 进行注释。如果不是,这可能是原因...