第 312 章 SOAP DataFormat
从 Camel 版本 2.3 开始提供
SOAP 是一种数据格式,它使用 JAXB2 和 JAX-WS 注释进行 marshal 和 unmarshal SOAP 有效负载。它提供了 Apache CXF 的基本功能,无需 CXF 堆栈。
支持的 SOAP 版本
默认情况下支持 SOAP 1.1。从 Camel 2.11 开始,支持 SOAP 1.2。
命名空间前缀映射
如需了解在使用 SOAP 数据格式时如何控制命名空间前缀映射的详细信息,请参阅 JAXB。
312.1. SOAP 选项 复制链接链接已复制到粘贴板!
SOAP dataformat 支持 7 个选项,如下所列。
名称 | 默认值 | Java 类型 | 描述 |
---|---|---|---|
contextPath |
| JAXB 类所在的软件包名称。 | |
编码 |
| overrule 并使用特定的编码 | |
elementNameStrategyRef |
| 指的是从 registry 中查找一个元素策略。元素名称策略用于两个目的。第一种方法是查找给定对象的 xml 元素名称,并在将对象放入 SOAP 消息时执行 soap 操作。第二个是查找给定 soap 故障名称的 Exception 类。以下三元素策略类名称开箱即用。QNameStrategy - 使用实例化时配置的固定 qName。不支持 TypeNameStrategy - 使用给定类型的 XMLType 注解中的名称和命名空间。如果没有设置命名空间,则使用 package-info。一个 exception lookup is not supported ServiceInterfaceStrategy - 使用来自 webservice 接口的信息来确定类型名称,并查找 SOAP fault All three 类的异常类位于软件包名称 org.apache.camel.dataformat.soap.name if you generated the web service stub code with cxf-codegen 或类似工具,您可能需要使用 ServiceInterfaceStrategy。在这种情况下,您没有注解的服务接口,您应该使用 QNameStrategy 或 TypeNameStrategy。 | |
version |
|
| SOAP 版本应为 1.1 或 1.2。默认为 1.1 |
namespacePrefixRef |
| 使用 JAXB 或 SOAP 总结时,JAXB 实施将自动分配命名空间前缀,如 ns2、ns3、ns4 等。要控制此映射,Camel 允许您引用包含所需映射的映射。 | |
schema |
| 针对现有架构进行验证。您可以使用前缀 classpath:、file: 或 http: 指定资源应如何解析。您可以使用 ',' 字符分隔多个架构文件。 | |
contentTypeHeader |
|
| 如果数据格式能够这样做,则数据格式是否应该使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式到 XML 的 application/xml 或用于数据格式的 application/json 发送到 JSon 等。 |