camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: How to invoke specific operation with params for cxf webservice endpoint through configuration
Date Thu, 10 Jun 2010 06:37:38 GMT
The parameters are put into the message body, you can find the example 
here[1]

[1] 
http://camel.apache.org/cxf.html#CXF-HowtopreparethemessageforthecamelcxfendpointinPOJOdataformat

Willem

StonePeng wrote:
> but where can i set the params of the operation
> 
> 
> willem.jiang wrote:
>> Hey,
>>
>> You just need to change the <constant> part which your operation name.
>>
>> Willem
>> StonePeng wrote:
>>> thanks, usha Kanteti:
>>> in my use case ,i want to config the operation name and its param in xml
>>> instead of writing soap msg by hand,how can i do it in cxfEndpoint xml or
>>> camelContext xml?  
>>> where can i set these contents? 
>>> <setHeader headerName="operationName">  
>>> <constant>myOperation</constant>  
>>> </setHeader> 
>>> in the above xml, is the content of "headerName" operation name? and is
>>> the
>>> content of "constant" params? 
>>>  
>>>  
>>>
>>>
>>> usha Kanteti wrote:
>>>> I use camel 2.2 and I read it somewhere that it can be done in the
>>>> following way
>>>>
>>>> <cxf:cxfEndpoint id="myWSEndpoint"
>>>> 	wsdlURL="META-INF/wsdl/your.wsdl"
>>>> 	address="${my.domain.service.url}"
>>>> 	endpointName=""
>>>> 	serviceName=""
>>>> 	xmlns:s="urn:...:wsdl" >	
>>>> 	
>>>> 	<cxf:properties> 
>>>> 		<entry key="dataFormat" value="MESSAGE"/> 
>>>> 	</cxf:properties>
>>>> </cxf:cxfEndpoint>
>>>>
>>>>
>>>> <camelContext id="MyCamelContext"
>>>>         xmlns="http://activemq.apache.org/camel/schema/spring">
>>>>         <route>
>>>>                 <from uri="activemq:queue/my/Queue" />
>>>>                
>>>>               <setHeader headerName="operationName">
>>>>                         <constant>myOperation</constant>
>>>>                 </setHeader>
>>>>                 <to uri="cxf:bean:myWSEndpoint" />
>>>>         </route>
>>>> </camelContext>
>>>>
>>>>
>>>> But the way I am doing is 
>>>>
>>>> 1) created a mockservice against the WSDL in soapUI 
>>>> 2) then we will see all the operations supported by that web-service in
>>>> soapUI with request object for each operation.
>>>> 3)when you are calling webservice, construct the request object in a
>>>> similar way (done in soapUI), then we don't need to specify operation
>>>> name
>>>> etc. ( we can ignore the <setHeader> tags )
>>>>
>>>>
>>>>
>>>> willem.jiang wrote:
>>>>> Hi,
>>>>>
>>>>> CAMEL-2780 addressed this issue by introducing a defaultOperationName

>>>>> option for you.
>>>>> It's a new to camel 2.4.0, please feel free to try out the latest camel

>>>>> 2.4-SNAPSHOT for it.
>>>>>
>>>>> [1]https://issues.apache.org/activemq/browse/CAMEL-2780
>>>>>
>>>>> Willem
>>>>>
>>>>> StonePeng wrote:
>>>>>> what is the answer about this question. i want to ask the same
>>>>>> question,
>>>>>> help
>>>>>>
>>>>>>
>>>>>>
>>>>>> usha Kanteti wrote:
>>>>>>> Hi Ashwin,
>>>>>>>   Is there anywhere to specify ( to call specific method of
>>>>>>> web-service)  
>>>>>>> like operationName="sayHello" in the following <cxf:Endpoint
tag.
>>>>>>>
>>>>>>> That's what my question is. 
>>>>>>>
>>>>>>> <cxf:Endpoint id="myEndpoint" 
>>>>>>> address="http://localhost:8080/someService/"
>>>>>>> wsdlURL="../sr-binding/src/main/resources/META-INF/wsdl/someservice.wsdl"

>>>>>>> endpointName="s:myEndpointName"
>>>>>>> serviceName="s:myService"
>>>>>>> operationName="s:sayHello"
>>>>>>> xmlns:s="urn:some:company:some:service:wsdl" >
>>>>>>> <cxfroperties>
>>>>>>> <entry key="dataFormat" value="MESSAGE"/>
>>>>>>> </cxfroperties>
>>>>>>> </cxf:cxfEndpoint>
>>>>>>>
>>>>>>> if we can't it that way, can we specify the method name at routing
>>>>>>> time
>>>>>>> before we send the request message to the "myEndpoint" in the
>>>>>>> following
>>>>>>> code 
>>>>>>>
>>>>>>> <route>
>>>>>>>     <from uri="jms:queue:..." />
>>>>>>>      <to   uri="cxf:bean:myEndpoint" /> 
>>>>>>> </route>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Ashwin Karpe wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> You do need to create a client to invoke on the CXF endpoint
and
>>>>>>>> send
>>>>>>>> a
>>>>>>>> SOAP payload that can be used to call your method described
in WSDL.
>>>>>>>>
>>>>>>>> If you do not want to write a client you could use a tool
like
>>>>>>>> SoapUI
>>>>>>>> to
>>>>>>>> do this for you (since you already have the WSDL).
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Ashwin...
>>>>>>>>
>>>>>>>>
>>>>>>>> usha K. wrote:
>>>>>>>>>  I have the following cxfEndpoint configuration in the
>>>>>>>>> camel-context.xml
>>>>>>>>> which is a webservice end point, pointing to a 3rd party
web
>>>>>>>>> service.
>>>>>>>>>
>>>>>>>>>  I am wondering how I can specify (in this configuration)
an
>>>>>>>>> operation
>>>>>>>>> with parameters to be passed to the webservice? As an
example, I
>>>>>>>>> need
>>>>>>>>> to
>>>>>>>>> invoke the operation sayHello() in that webservice, passing
two
>>>>>>>>> parameters (firstName, lastName).
>>>>>>>>>
>>>>>>>>>  Can I do that in the cxfEndPoint itself? If so, how?
Also, how can
>>>>>>>>> I
>>>>>>>>> pass the values itself?
>>>>>>>>>
>>>>>>>>> <cxf:cxfEndpoint id="myEndpoint" 
>>>>>>>>> address="http://localhost:8080/someService/"
>>>>>>>>> wsdlURL="../sr-binding/src/main/resources/META-INF/wsdl/someservice.wsdl"

>>>>>>>>> endpointName="s:myEndpointName"
>>>>>>>>> serviceName="s:myService"
>>>>>>>>> xmlns:s="urn:some:company:some:service:wsdl" >
>>>>>>>>> <cxfroperties>
>>>>>>>>> <entry key="dataFormat" value="MESSAGE"/>
>>>>>>>>> </cxfroperties>
>>>>>>>>> </cxf:cxfEndpoint>
>>>>>>>>>
>>>>>>>>> OR do I have to write a client code on my side (where
this end
>>>>>>>>> point
>>>>>>>>> points to)?
>>>>>>>>>
>>>>>
>>
>>
> 


Mime
View raw message