0

シンプルな cxf Web サービスを作成しました。以下は SOAP メッセージの本文です。

 <soapenv:Body>
      <bean:getRTOEmployeeSalary>
         <!--Optional:-->
         <bean:arg0>sdf</bean:arg0>
      </bean:getRTOEmployeeSalary>
   </soapenv:Body>

私の要件は、camel コンテキスト ファイルで arg0 の値を抽出することです。つまり、arg0 の値をログに記録したいと考えています。これについて私を助けてください

    <route routePolicyRef="loggingInInterceptor">
        <from uri="cxf:bean:rtoemplyeeService"/>
        <setHeader headerName="exchange">
            <spel>${exchange}</spel>
        </setHeader>
        <log message="value of arg0======== "/>
        <convertBodyTo type="java.lang.String" id="stringInput"/>
        <bean ref="rtoEmpBean" method="getRTOEmployeeSalary" beanType="rtoEmpBean" id="govtRTOEmp"/>
    </route>

ここでは arg0 の値を使用する必要があります。

4

1 に答える 1

0

キャメルが提供するスプリング式言語を使用して、交換オブジェクトから値を抽出できます。スプリングコンテナにも交換対象が常駐するので。以下は、キャメルコンテキストでarg0の値を抽出するためのコードsrcになります-

<setHeader headerName="arg0">
        <spel>#{exchange.in.body.get(0)}</spel>
</setHeader>

これにより、arg0 という名前のヘッダーに SOAP メッセージの arg0 の値が設定されます。 http://camel.apache.org/spel.html

于 2014-01-03T05:26:14.680 に答える