具有 xml 数据绑定的 Apache cxf jax-rs 实现
Apache cxf jax-rs implementation with xml databind
我将我的休息服务配置为通过 Variant 实现内容协商。
在球衣上一切正常,但在 apache cxf 上出现问题。
未找到 class 的邮件正文作者 ContentType:application/xml
似乎当我将响应构建为 xml 类型时,它找不到正确的正文编写器。
我用 jacksonJaxbJsonProvider 配置了 jax-rs,并且在 json databind 下工作得很好。
<jaxrs:providers>
<bean class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider" />
</jaxrs:providers>
cxf-rt-frontend-jaxrs 版本 3.0.3
杰克逊数据绑定:2.4.2
有什么想法吗?
添加一个@XmlRootElement(name="order")
生成的xml不能是<orderId>data<orderId>
,它应该有根元素。因此更新后的代码看起来像
@XmlRootElement(name="order")
@XmlType(propOrder = { "orderId"})
public class OrderForConfirmationEmail implements Serializable {
@XmlElement
public long getOrderId() {
long orderId = new Random().nextLong();
return orderId;
}
}
生成的xml是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><order xmlns="http://com.kp.swasthik/so/schema">
<orderId>369317779145370211</orderId>
</order>
并且json是
{"orderId":6812414735706519327}
我将我的休息服务配置为通过 Variant 实现内容协商。 在球衣上一切正常,但在 apache cxf 上出现问题。
未找到 class 的邮件正文作者 ContentType:application/xml
似乎当我将响应构建为 xml 类型时,它找不到正确的正文编写器。
我用 jacksonJaxbJsonProvider 配置了 jax-rs,并且在 json databind 下工作得很好。
<jaxrs:providers>
<bean class="com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider" />
</jaxrs:providers>
cxf-rt-frontend-jaxrs 版本 3.0.3 杰克逊数据绑定:2.4.2
有什么想法吗?
添加一个@XmlRootElement(name="order")
生成的xml不能是<orderId>data<orderId>
,它应该有根元素。因此更新后的代码看起来像
@XmlRootElement(name="order")
@XmlType(propOrder = { "orderId"})
public class OrderForConfirmationEmail implements Serializable {
@XmlElement
public long getOrderId() {
long orderId = new Random().nextLong();
return orderId;
}
}
生成的xml是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><order xmlns="http://com.kp.swasthik/so/schema">
<orderId>369317779145370211</orderId>
</order>
并且json是
{"orderId":6812414735706519327}