camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From StonePeng <tian_bogu...@tom.com>
Subject Re: How to invoke specific operation with params for cxf webservice endpoint through configuration
Date Thu, 10 Jun 2010 05:44:01 GMT

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)?
>>>>>>>>
>>>>
>>>>
>>>
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/How-to-invoke-specific-operation-with-params-for-cxf-webservice-endpoint-through-configuration-tp28023138p28838993.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message