I'm using the cxfEndpoint in my camel flow to act as a webservice producer.

I have a number of clients that are able to send SOAP messages to that
endpoint, where Camel does the 
required processing and returns either a valid SOAP response or a SOAP
fault.

        <cxf:cxfEndpoint id="soapMessageEndpoint" 
                                         
address="http://localhost:9080/app/webservices/service1";
                          endpointName="s:SoapOverHttpRouter" 
                          serviceName="s:SOAPService" 
                          xmlns:s="http://apache.org/service_soap_http";>
                          
                <cxf:properties>
                        <entry key="dataFormat" value="PAYLOAD"/>
                </cxf:properties>
        
        </cxf:cxfEndpoint>

        <from uri="cxf:bean:soapMessageEndpoint"/>

This endpoint is very dynamic in nature as 

* we are using payload mode
* are not bound to a particular WSDL / service class
* can accept different type of soap request payloads (for different soap
actions).

We discovered an issue with a Soap 1.1 client that is sending a SOAPAction
HTTP header to the endpoint. When the SOAPAction HTTP header is present the
following soap fault is returned:

The given SOAPAction
ServiceCommercialKnowledgeDatabase/v1/ServiceCommercialKnowledgeDatabasePortType_Soap11_HTTP/KnowledgeDatabaseConsultationLogEntryCreation
does not match an operation.

As there is no WSDL associated with the endpoint (the endpoint is running in
payload mode) how can the SOAPAction HTTP header ever be matched ? 

What is the proper way to handle this ?



--
View this message in context: 
http://camel.465427.n5.nabble.com/CXFEndpoint-and-SOAPAction-HTTP-header-tp5731906.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to