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