79.11. 使用 Spring 配置 destination 和 conduit
79.11.1. Namespace 复制链接链接已复制到粘贴板!
用于配置 Camel 传输端点的元素在命名空间 http://cxf.apache.org/transports/camel 中定义。它通常被称为前缀 camel。要使用 Camel 传输配置元素,您需要将下面显示的行添加到端点配置文件的 Bean 元素中。另外,您需要将配置元素的命名空间添加到 xsi:schemaLocation 属性中。
添加配置命名空间
<beans ...
xmlns:camel="http://cxf.apache.org/transports/camel
...
xsi:schemaLocation="...
http://cxf.apache.org/transports/camel
http://cxf.apache.org/transports/camel.xsd
...>
79.11.2. destination 元素 复制链接链接已复制到粘贴板!
您可以使用 camel:destination 元素及其子项配置 Camel 传输服务器端点。camel:destination 元素采用单个属性 name,它指定与端点对应的 WSDL 端口元素。name 属性的值采用 portQName'.camel-destination' 形式。以下示例显示 camel:destination 元素,它将用于为 WSDL 片段 < port binding="widgetSOAPBinding" name="widgetSOAPPort">如果端点的 目标命名空间是 http://widgets.widgetvendor.net 指定的端点添加配置。
camel:destination Element
...
<camel:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination>
<camelContext id="context" xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="direct:EndpointC" />
<to uri="direct:EndpointD" />
</route>
</camelContext>
</camel:destination>
<!-- new added feature since Camel 2.11.x
<camel:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-destination" camelContextId="context" />
...
Spring 的 camel:destination 元素有多个指定配置信息的子元素。它们如下所述。
元素
描述
camel-spring:camelContext
您可以在 camel 目的地中指定 camel 上下文
camel:camelContextRef
要注入 camel 目的地的 camel 上下文 ID
79.11.3. conduit 元素 复制链接链接已复制到粘贴板!
您可以使用 camel:conduit 元素及其子项配置 Camel 传输客户端。camel:conduit 元素采用单个属性 name,它指定与端点对应的 WSDL 端口元素。name 属性的值采用 portQName'.camel-conduit' 形式。例如,下面的代码显示 camel:conduit 元素,它用于为 WSDL 片段 < port binding="widgetSOAPBinding" name="widgetSOAPPort "> (如果端点的目标命名空间是 http://widgets.widgetvendor.net )指定的端点配置。
http-conf:conduit Element
...
<camelContext id="conduit_context" xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="direct:EndpointA" />
<to uri="direct:EndpointB" />
</route>
</camelContext>
<camel:conduit name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-conduit">
<camel:camelContextRef>conduit_context</camel:camelContextRef>
</camel:conduit>
<!-- new added feature since Camel 2.11.x
<camel:conduit name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-conduit" camelContextId="conduit_context" />
<camel:conduit name="*.camel-conduit">
<!-- you can also using the wild card to specify the camel-conduit that you want to configure -->
...
</camel:conduit>
...
camel:conduit 元素有多个指定配置信息的子元素。它们如下所述。
元素
描述
camel-spring:camelContext
您可以在 camel conduit 中指定 camel 上下文
camel:camelContextRef
要注入 camel conduit 的 camel 上下文 ID