我的骆驼配置中有两个route

路线1

    <route>
        <from uri="cxf:bean:soapProxy1?dataFormat=PAYLOAD" />
        <setHeader headerName="CamelHttpMethod">
          <constant>POST</constant>
        </setHeader>
        <setHeader headerName="Contents-type">
          <constant>application/octet-stream</constant>
        </setHeader>
        <setHeader headerName="SOAPAction">
          <constant>vc</constant>
        </setHeader>
        <setHeader headerName="Accept">
          <constant>application/xml</constant>
        </setHeader>

        <to uri="bean:samlWsBean" />

        <choice>
            <when>
                <simple>${in.header.isvalid} contains "true"</simple>
                <to uri="cxf:bean:backendService?dataFormat=PAYLOAD"/>
            </when>
            <otherwise>
                <to uri="velocity:file:///path/samlerrorresponse.vm"/>
            </otherwise>
        </choice>
    </route>


路线2

    <route>
        <from uri="cxf:bean:soapProxy2?dataFormat=PAYLOAD" />
        <setHeader headerName="CamelHttpMethod">
          <constant>POST</constant>
        </setHeader>
        <setHeader headerName="Contents-type">
          <constant>application/octet-stream</constant>
        </setHeader>
        <setHeader headerName="SOAPAction">
          <constant>vc</constant>
        </setHeader>
        <setHeader headerName="Accept">
          <constant>application/xml</constant>
        </setHeader>

        <to uri="bean:samlWsBean" />

        <choice>
            <when>
                <simple>${in.header.isvalid} contains "true"</simple>
                <to uri="cxf:bean:backendService?dataFormat=PAYLOAD"/>
            </when>
            <otherwise>
                <to uri="velocity:file:///path/samlerrorresponse.vm"/>
            </otherwise>
        </choice>
    </route>


两条路线只有一条线的差异。

一个有这个

<from uri="cxf:bean:soapProxy1?dataFormat=PAYLOAD" />


另一个有这个

<from uri="cxf:bean:soapProxy2?dataFormat=PAYLOAD" />


所以我可以将共同体放在其他地方的配置中,并在两条路线中都引用吗?

最佳答案

当没有人回答我的问题时,我开始再次在线搜索,并且找到了这样的解决方案

<camel:route id="myCommonPartOfFlow">
  <camel:from uri="direct-vm:common-in"/>
  [common part]
</camel:route>


然后你可以像这样调用

<camel:to uri="direct-vm:common-in/>


有关更多帮助,请参见thisthis,希望这会对其他人有所帮助。

09-26 02:48