java cxf xml嵌套

阅读: 评论:0

java cxf xml嵌套

java cxf xml嵌套

小编典典

首先,获取XML格式化输出的方法是在编组器上设置正确的属性(通常在使用CXF时使用JAXB,因为JAXB做得很可靠,所以可以使用)。也就是说,在某个地方您将需要执行以下操作:

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

问题是您不一定要格式化 所有 输出;它增加了很多开销。幸运的是,您已经在生成一个explicit Response,因此我们可以使用更多的功能:

Marshaller marshaller = Class()).createMarshaller();

marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

StringWriter sw = new StringWriter();

marshaller.marshal(entity, sw);

return Response.String(), MediaType.APPLICATION_XML_TYPE).build();

在此JIRA问题中提到了另一种方法(它本身已关闭,但对您而言并不是什么大问题):

解决方法是注册一个自定义输出处理程序,该处理程序可以检查用于请求可选缩进的任何自定义查询:

JAXBElementProvider和JSONProvider由JAXB

Marshaller驱动,因此默认情况下,它们会检查当前消息上的Marshaller.JAXB_FORMATTED_OUTPUT属性。

这导致如下代码:

public class FormattedJAXBInterceptor extends AbstractPhaseInterceptor {

public FormattedJAXBInterceptor() {

super(Phase.PRE_STREAM);

}

public void handleMessage(Message message) {

message.put(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

}

public void handleFault(Message messageParam) {

message.put(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);

}

}

2020-11-16

本文发布于:2024-02-01 22:26:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170679759639834.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:嵌套   java   cxf   xml
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23