79.11. 使用 Spring 配置目的地和行为
79.11.1. 命名空间 复制链接链接已复制到粘贴板!
用于配置 Camel 传输端点的元素在命名空间 http://cxf.apache.org/transports/camel 中定义。通常使用前缀 camel。要使用 Camel 传输配置元素,您需要将下面显示的行添加到端点配置文件的 beans 元素中。另外,您需要将配置元素的命名空间添加到 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 元素使用单个属性,名为,用于指定与端点对应的 WSDL 端口元素。name 属性的值采用 portQName'.camel-destination' 形式。以下示例显示了 camel:destination 元素,用于为由 WSDL 片段 < port binding="widgetSOAPBinding" name="widgetSOAPPort ">指定的端点添加配置(如果端点的目标命名空间是 http://widgets.widgetvendor.net)。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 元素使用单个属性,名称,用于指定与端点对应的 WSDL 端口元素。name 属性的值采用 portQName'.camel-conduit' 形式。例如,以下代码显示了 camel:conduit 元素,该元素将用于为由 WSDL 片段 < port binding="widgetSOAPBinding" name="widgetSOAPPort"> 指定的端点添加配置(如果端点的目标命名空间是 http://widgets.widgetvendor.net)。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