2016-06-16 1 views
0

Camel-Cxf/Fuseを使用し、Payload dataformatを使用してSOAPサービスを呼び出そうとしています。クライアントがSOAPActionが欠落しているとのリクエストを拒否している場合があり、これは断続的です。サービス呼び出し中にSOAPActionを特に設定する方法はありますか?どのような場合にSOAPActionを送信できないのですか?ここでは、呼び出しに使用する設定を示します。Camel-CXFでWSを呼び出すときにSOAPActionヘッダーが見つからない

<!-- CXF configuration pointing to WSDL URL and service Name --> 

    <cxf:cxfEndpoint id="abcSOAPCPOutbound" 
         wsdlURL="wsdl/FooService.wsdl" 
         endpointName="cNS:FooServiceSoap" 
         serviceName="cNS:FooService" 
         address="http://example.com/processRequest.asmx" 
         xmlns:cNS="http://www.example.com" 
         loggingFeatureEnabled="false"> 
      <cxf:inInterceptors> 
       <ref bean="GZIPInInterceptor"/> 
      </cxf:inInterceptors>  
      <cxf:outInterceptors>   
       <ref bean="iuABCSOAPOutboundInterceptor"/>   
      </cxf:outInterceptors>  
     </cxf:cxfEndpoint> 

    <!-- Came route for invoking service with operationName header set --> 

    <route id="iuFooOutboundRoute"> 
       <from uri="direct-vm:iuOutboundtoFoo"/>  
       <setHeader headerName="operationName" > 
        <constant>FooSync</constant> 
       </setHeader> 
       <convertBodyTo type="String"/> 
       <!-- Send to Colibrium --> 
       <to uri="cxf:bean:abcSOAPCPOutbound?dataFormat=PAYLOAD"/> 
     <process ref="extractHTTPStatusCode"/> 
    </route> 

サービスを呼び出す前にラクダヘッダーをSOAPActionとして設定すると問題はありますか?あなたがのoperationNameを行うよう

+0

を私はこれがあると思われるよう何らかの問題があるだろうとは思いません最後に記載されている[documentation](http://camel.apache.org/cxf.html)に関する公式の方法 "デフォルトのCXFディスパッチクライアントは特定のSOAPActionヘッダーを送信しないことに注意してください。したがって、ターゲットサービスが特定のSOAPAction値を必要とする場合、それは供給されますキーSOAPAction(大文字と小文字を区別しない)を使用してCamelヘッダーに追加します。 – Frank

+0

正確なエラーメッセージは何ですか? – soilworker

答えて

関連する問題