2016-06-16 2 views
0

Wir versuchen, einen Soap-Service mit Camel-Cxf/Fuse aufzurufen und Payload-Datenformat zu verwenden. Manchmal lehnt der Client eine Anfrage ab, die besagt, dass SOAPAction fehlt und dies nur sporadisch ist. Gibt es eine Möglichkeit, SOAPAction speziell während des Serviceaufrufs zu setzen? In welchen Fällen senden wir keine SOAPAction? Hier ist die Konfiguration, die wir für den Aufruf verwenden.Fehlender SOAPAction-Header beim Aufruf von WS mit Camel-CXF

<!-- 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> 

Kann es Probleme geben, wenn wir camel header als SOAPAction setzen, bevor der Dienst aufgerufen wird? Ja

+0

Das glaube ich nicht, dass es keine Probleme geben, da dies die zu sein scheint Offizieller Weg zu gehen, in Bezug auf die [Dokumentation] (http://camel.apache.org/cxf.html), die am Ende heißt "Es wird angemerkt, dass der Standard-CXF-Dispatch-Client keinen bestimmten SOAPAction-Header sendet. Deshalb Wenn der Zieldienst einen bestimmten SOAPAction-Wert erfordert, wird dieser bereitgestellt im Camel-Header mit dem Schlüssel SOAPAction (case-insensitive). " – Frank

+0

Was ist die genaue Fehlermeldung, die Sie erhalten? – soilworker

Antwort

Verwandte Themen