i think what you want is a single starting endpoint that branches on the operation header (or whatever that distinguishes the call). <camlel:route id="root"> <camel:from uri="cxf:bean...." /> <camel:choice> <camel:when> <camel:simple>${header.operationName} == 'op1'</camel:simple> <camel:to uri="direct:op1route/> </camel:when> <camel:when> <camel:simple>${header.operationName} == 'op2'</camel:simple> <camel:to uri="direct:op2route/> </camel:when> </camel:route>
<camel:route id="op1route"> <camel:from uri="direct:op1route"/> ,,, <camel:route id="op2route"> <camel:from uri="direct:op2route"/> ,,, 2013/4/22 martin11 <mato.kraj...@gmail.com> > Hello, > > I`m using camel ver. 2.10.4 and I want to create web service by using CXF > (contract-first approach) and I have two method (Add & Remove) in single > WSDL: > > <?xml version="1.0" encoding="UTF-8" standalone="no"?> > <wsdl:definitions name="AdditiveRoleEndpointService" > xmlns:nps="http://www.test.com/nest/schemas/AdditiveRole > " > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > targetNamespace="http://www.test.com/nest/schemas/AdditiveRole"> > <wsdl:types> > ... > ... > </wsdl:types> > <wsdl:message name="AddRequest"> > <wsdl:part element="nps:AddRequest" name="parameters"/> > </wsdl:message> > <wsdl:message name="AddResponse"> > <wsdl:part element="nps:AddResponse" name="parameters"/> > </wsdl:message> > <wsdl:message name="RemoveRequest"> > <wsdl:part name="parameters" element="nps:RemoveRequest"/> > </wsdl:message> > <wsdl:message name="RemoveResponse"> > <wsdl:part name="parameters" element="nps:RemoveResponse"/> > </wsdl:message> > <wsdl:portType name="AdditiveRoleEndpoint"> > <wsdl:operation name="Add"> > <wsdl:input message="nps:AddRequest"/> > <wsdl:output message="nps:AddResponse"/> > </wsdl:operation> > <wsdl:operation name="Remove"> > <wsdl:input message="nps:RemoveRequest"/> > <wsdl:output message="nps:RemoveResponse"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="AdditiveRoleBinding" > type="nps:AdditiveRoleEndpoint"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="Add"> > <soap:operation > soapAction="http://www.test.com/nest/schemas/AdditiveRole/Add"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > <wsdl:operation name="Remove"> > <soap:operation > soapAction="http://www.test.com/nest/schemas/AdditiveRole/Remove"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="AdditiveRoleEndpointService"> > <wsdl:port name="AdditiveRoleService" > binding="nps:AdditiveRoleBinding"> > <soap:address location="http://localhost:9000/additiverole"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > > <cxf:cxfEndpoint id="serviceEndpoint" > address="http://localhost:9000/role" > > serviceClass="com.test.nest.schemas.additiverole.AdditiveRoleEndpoint" > wsdlURL="service.wsdl" > endpointName="s:AdditiveRoleService" > serviceName="s:AdditiveRoleEndpointService" > > xmlns:s="http://www.test.com/nest/schemas/AdditiveRole"/> > > *Can I use something like SOAP action for specify CXF consumer for each > method from WSDL?* > > <camel:route id="route-add"> > <camel:from uri="cxf:bean:serviceEndpoint?SOAPaction=Add"/> > <camel:process ref="testingProcessor"/> > ... > </camel:route> > <camel:route id="route-remove"> > <camel:from uri="cxf:bean:serviceEndpoint?SOAPaction=Remove"/> > <camel:process ref="testingProcessor"/> > ... > </camel:route> > > > Thanks for any advice or suggestions, > > Martin > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/CXF-consumer-by-soapAction-tp5731241.html > Sent from the Camel - Users mailing list archive at Nabble.com. >