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