Freeman , 

I am not getting getOperation() method in configure method ? it would be
great if u can give a code snippet or web link for sample implimentation??? 

following is my code I tried to implement it 

public class MyRouteBuilder extends RouteBuilder {

                   public void configure() {

                      
from(jbi:service:http://esbinaction.com/helloworld/camelReceiver";).
                          
to("jbi:service:http://esbinaction.com/helloworld/sender";);

                   }

                
}

in the above process i am not getting the getOperation() 

thanks a lot for the help 

Brijesh N K




Freeman Fang wrote:
> 
> brijesh wrote:
>> Freeman, 
>>
>> I have two operation create and modify in portType,  but both operation 
>> in
>> parameters are same type(schema),  I mean there is no difference in
>> message
>> payload. 
>>
>> i am using camel CBR for routing.  But Is there any way to identify the
>> message from which operation(create/update) in camel cbr, based on header
>> or
>> any other attribute as I can't makeout the difference in message
>> payload?? 
>> , 
>>
>>   
> After processed by cxf bc consumer, the MessageExchange reach to your 
> camel component should be set operationName, you can get it by
> me.getOperation(),
> this will tell your camel it's create or update operation
> Freeman
>> thanks 
>>
>> Brijesh N K
>>
>>
>>
>> brijesh wrote:
>>   
>>> 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-tp21513762p21542631.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to