thanks a lot Freeman for clarifying my doubts, yea i understand that even if a portType having multiple operations will allways have single targetService in cxf-bc.
But when a client generated through wsdl having portType with multiple operations. It will have multiple method, client can call this method, but i hope cxf-bc will still route it to a single targetService for any of this method called by client , when we configure this service(with portType with multiple opreration) cxf-bc will not throw any error. but I was wodering how cxf-bc will take care schema validation. Each operation will have different in/out parameter, if we need to validate schema how will cxf-bc take care, can we have multple schema validation for a single cxf-bc end points??? thanks Brijesh N K Freeman Fang wrote: > > brijesh wrote: >> thanks freeman for the response , >> I do understand by using cxf-camel , i can route the to different >> targetService. >> >> But my doubt is , based on wsdl & porttype operation is there a >> possibility >> in cxf-bc xbean to give different targetService? >> Something like , matching service name in wsdl with cxf-bc service >> attribute, is there any way to match portType operation in wsdl & cxf-bc >> to >> match and pass the message to different targetService?? >> >> > No. > The relationship between service porttype and operation is > > service--->porttype -- operation1 > |---operation2 > |----operation n > there is noway cxf can route different message based on operation to > different targetService, since only one targetService could be defined > for cxf bc consumer. CBR should be taken care of by servicemix-eip or > servicemix-camel > > One way is you can split your wsdl, define two portType and two service, > each portType have different operation, and use two cxf bc consumers. > > Freeman > >> Thanks >> Brijesh N K >> >> >> >> >> Freeman Fang wrote: >> >>> brijesh wrote: >>> >>>> hello , >>>> >>>> I need to know how to configure wsdl operations in cxf-bc xbean, >>>> >>>> the following is scenario >>>> >>>> wsdl having portype as follows >>>> >>>> <wsdl:portType name="ContractPortType"> >>>> <wsdl:operation name="createContract"> >>>> <wsdl:input message="eka:createContractRequest" /> >>>> <wsdl:output message="eka:createContractResponse" /> >>>> >>>> <wsdl:fault name="fault" >>>> message="eka:createContract_faultMsg1"></wsdl:fault> >>>> </wsdl:operation> >>>> <wsdl:operation name="modifyContract"> >>>> <wsdl:input >>>> message="eka:modifyContractRequest"></wsdl:input> >>>> <wsdl:output >>>> message="eka:modifyContractResponse"></wsdl:output> >>>> >>>> <wsdl:fault name="fault" >>>> message="eka:modifyContract_faultMsg1"></wsdl:fault> >>>> </wsdl:operation> >>>> >>>> </wsdl:portType> >>>> >>>> the following service for the above port >>>> >>>> <wsdl:service name="ContractService"> >>>> <wsdl:port binding="eka:ContractBinding" >>>> name="ContractServicePort"> >>>> <soap:address location="http://localhost:8092/ContractService" >>>> /> >>>> </wsdl:port> >>>> </wsdl:service> >>>> >>>> cxf-bc configureation as follows >>>> >>>> >>>> <cxfbc:consumer wsdl="classpath:contract.wsdl" >>>> service="eka:ContractService" >>>> targetService="eka:contractBeanRouter" >>>> useJBIWrapper="false" >>>> useSOAPEnvelope="false" >>>> /> >>>> >>>> above xbean i can configure only one targetService, but service client >>>> can >>>> make call to createContract and modifyContract operations(see the above >>>> wsdl >>>> operations declaration in port type), both calls are going to same >>>> targetService. >>>> wondering is there any way to configure multiple targetService based on >>>> my >>>> wsdl operation?? like createContract should have contractBeanRouter , >>>> modifyContract should have modifyContractBeanRouter as targetService?. >>>> >>>> i can't define one more cxfbc conf with same service with different >>>> target >>>> space, it gives error as duplicate endpoint defined >>>> >>>> >>> For your case, you want route to different target Service based on >>> different operation. >>> You can archieve it by using servicemix-eip or servicemix-camel, >>> something like content based routing >>> The flow looks like >>> >>> external client ====> cxf bc consumer====> servicemix-eip or >>> servicemix-camel ====> your different target service based on different >>> operation. >>> >>> Freeman >>> >>>> Any idea on this >>>> >>>> thanks >>>> Brijesh N K >>>> >>>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/wsdl-PortType-and-Operations-in-cxf-bc-tp21513762p21537056.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
