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