You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache CXF能否发送美化缩进格式化的SOAP请求?

结论

Apache CXF原生支持输出格式化缩进(pretty print)的SOAP报文,可直接满足你的需求,无需自定义报文序列化逻辑。

具体配置方式

1. XML/Spring配置场景

在CXF SOAP客户端的XML配置中添加PRETTY_PRINT属性即可,示例配置如下:

<jaxws:client id="customSoapClient"
              serviceClass="com.example.YourServiceInterface"
              address="目标SOAP端点地址">
    <jaxws:properties>
        <entry key="org.apache.cxf.message.Message.PRETTY_PRINT" value="true"/>
        <!-- 可选:部分极端场景下避免命名空间前缀异常可添加以下配置 -->
        <entry key="org.apache.cxf.stax.force-start-document" value="true"/>
    </jaxws:properties>
</jaxws:client>

2. 纯Java代码配置场景

在获取服务端口实例后,给请求上下文添加对应属性即可,示例代码如下:

// 初始化服务客户端,类名为你通过wsdl2java生成的服务类
YourService service = new YourService();
YourServicePort port = service.getYourServicePort();

Map<String, Object> requestContext = ((BindingProvider) port).getRequestContext();
// 开启SOAP报文格式化输出
requestContext.put("org.apache.cxf.message.Message.PRETTY_PRINT", Boolean.TRUE);
// 可选配置,作用同上
requestContext.put("org.apache.cxf.stax.force-start-document", Boolean.TRUE);
注意事项
  • 上述配置仅调整SOAP报文的排版格式,新增换行、缩进,不会修改任何业务字段、节点结构、命名空间等核心内容,不会对符合规范的服务端解析逻辑产生影响。
  • 若需要验证输出格式,可开启CXF客户端的报文日志打印,直接查看发送的请求报文是否符合预期。

内容的提问来源于stack exchange,提问作者Martin Fernau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 17:42:03