what i mean by multiple schema is , as you mentioned in your response  I can
have different in/out parameter with different types(schemas) for each of
this operations in a portType , I can still validate all of those schemas
with turning on schemaValidation as you mentioned in ur last reponse, 

thanks Freeman this calrifies my doubt, 

Brijesh N K   


Freeman Fang wrote:
> 
> brijesh wrote:
>> 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.   
>>   
> Yeah, of course cxf bc support one portype with multiple operations.
> The method identification and dispatch is based on the service model 
> (which is generated from the wsdl model), so you needn't worry about the 
> multiple operations issue yourself.
>> 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???
>>   
> I can't follow what you mean here about multiple schema validation.
> But of course you can import multiple xsd files into your wsdl, which 
> will be used for schema validation if you turn the schemaValidation on, 
> something like
>  <jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort";
> wsdlLocation="wsdl/hello_world.wsdl"
>  createdFromAPI="true">
>  <jaxws:properties>
> <entry key="schema-validation-enabled" value="true" />
>  </jaxws:properties>
>  </jaxws:endpoint>
> 
> Freeman
> 
> 
> 
>> 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-tp21513762p21537368.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to