第 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 等。 |