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-tp28023138p28833137.html
Sent from the Camel - Users mailing list archive at Nabble.com.