soap - Consuming a JAX-WS in a Mule ESB flow -
i want consume jax-ws service method. methode named find , accept string argument.
this mule flow :
<flow name="invokeawebserviceflow1" doc:name="invokeawebserviceflow1"> <file:inbound-endpoint path="c:\mulestudio\sandbox\input" pollingfrequency="3000" responsetimeout="10000" doc:name="file"/> <file:file-to-string-transformer encoding="utf-8" mimetype="text/xml" doc:name="file string"/> <cxf:jaxws-client port="douanewsport" serviceclass="wsdl.douanews" doc:name="soap" enablemulesoapheaders="true" operation="find"/> <echo-component doc:name="echo"/> <file:outbound-endpoint path="c:\mulestudio\sandbox\output" outputpattern="#[function:datestamp:dd-mm-yy]_#[function:systime].xml" responsetimeout="10000" doc:name="file"/> </flow> i put argument file, in exampl argument "ctr1" after put file inbound endpoint, after file transformed string , goes jax-ws client, respponse written output file.
when run flow output :
<soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <ns2:find xmlns:ns2="http://douane.ws/"> <id>ctr1</id> </ns2:find> </soap:body> </soap:envelope> the output soap request instead of expected soap response, should somthing like:
<s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:body> <ns2:findresponse xmlns:ns2="http://douane.ws/"> <return> <quality>medium</quality> <price>150</price> <idprod>ctr1</idprod> </return> </ns2:findresponse> </s:body> </s:envelope > .
the error generate
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + started app 'invokeawebservice' + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ info 2013-05-14 11:13:15,024 [[invokeawebservice].connector.file.mule.default.receiver.01] org.mule.transport.file.filemessagereceiver: lock obtained on file: c:\mulestudio\sandbox\input\input.txt info 2013-05-14 11:13:15,155 [[invokeawebservice].invokeawebserviceflow1.stage1.02] org.mule.component.simple.logcomponent: ******************************************************************************** * message received in service: invokeawebserviceflow1. content is: * * '<soap:envelope * * xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:body><ns2:find * * xmlns:ns2...[100 of 173]' * ******************************************************************************** info 2013-05-14 11:13:15,184 [[invokeawebservice].connector.file.mule.default.dispatcher.01] org.mule.lifecycle.abstractlifecyclemanager: initialising: 'connector.file.mule.default.dispatcher.2917880'. object is: filemessagedispatcher info 2013-05-14 11:13:15,184 [[invokeawebservice].connector.file.mule.default.dispatcher.01] org.mule.lifecycle.abstractlifecyclemanager: starting: 'connector.file.mule.default.dispatcher.2917880'. object is: filemessagedispatcher info 2013-05-14 11:13:15,200 [[invokeawebservice].connector.file.mule.default.dispatcher.01] org.mule.transport.file.fileconnector: writing file to: c:\mulestudio\sandbox\output\14-05-13_1368522795199.xml warn 2013-05-14 11:13:15,261 [[invokeawebservice].invokeawebserviceflow1.stage1.02] org.apache.cxf.phase.phaseinterceptorchain: interceptor {http://douane.ws/}douanewsservice#{http://douane.ws/}find has thrown exception, unwinding org.apache.cxf.interceptor.fault: unexpected wrapper element {http://douane.ws/}find found. expected {http://douane.ws/}findresponse. @ org.apache.cxf.interceptor.docliteralininterceptor.handlemessage(docliteralininterceptor.java:106) @ org.apache.cxf.phase.phaseinterceptorchain.dointercept(phaseinterceptorchain.java:263) @ org.apache.cxf.endpoint.clientimpl.onmessage(clientimpl.java:799) @ org.mule.module.cxf.transport.muleuniversalconduit.dispatchmulemessage(muleuniversalconduit.java:280) @ org.mule.module.cxf.transport.muleuniversalconduit$2.handlemessage(muleuniversalconduit.java:194) @ org.apache.cxf.phase.phaseinterceptorchain.dointercept(phaseinterceptorchain.java:263) @ org.apache.cxf.endpoint.clientimpl.doinvoke(clientimpl.java:533) @ org.apache.cxf.endpoint.clientimpl.invoke(clientimpl.java:463) @ org.apache.cxf.endpoint.clientimpl.invoke(clientimpl.java:375) @ org.mule.module.cxf.cxfoutboundmessageprocessor.dosendwithclient(cxfoutboundmessageprocessor.java:235) @ org.mule.module.cxf.cxfoutboundmessageprocessor.process(cxfoutboundmessageprocessor.java:125) @ org.mule.execution.exceptiontomessagingexceptionexecutioninterceptor.execute(exceptiontomessagingexceptionexecutioninterceptor.java:27) @ org.mule.execution.messageprocessornotificationexecutioninterceptor.execute(messageprocessornotificationexecutioninterceptor.java:61) @ org.mule.execution.messageprocessorexecutiontemplate.execute(messageprocessorexecutiontemplate.java:47) @ org.mule.processor.chain.defaultmessageprocessorchain.doprocess(defaultmessageprocessorchain.java:95) @ org.mule.processor.chain.abstractmessageprocessorchain.process(abstractmessageprocessorchain.java:70) @ org.mule.execution.exceptiontomessagingexceptionexecutioninterceptor.execute(exceptiontomessagingexceptionexecutioninterceptor.java:27) @ org.mule.execution.messageprocessorexecutiontemplate.execute(messageprocessorexecutiontemplate.java:47) @ org.mule.processor.abstractinterceptingmessageprocessorbase.processnext(abstractinterceptingmessageprocessorbase.java:106) @ org.mule.interceptor.abstractenvelopeinterceptor.process(abstractenvelopeinterceptor.java:55) @ org.mule.processor.asyncinterceptingmessageprocessor.processnexttimed(asyncinterceptingmessageprocessor.java:122) @ org.mule.processor.asyncinterceptingmessageprocessor$asyncmessageprocessorworker$1.process(asyncinterceptingmessageprocessor.java:192) @ org.mule.processor.asyncinterceptingmessageprocessor$asyncmessageprocessorworker$1.process(asyncinterceptingmessageprocessor.java:185) @ org.mule.execution.executecallbackinterceptor.execute(executecallbackinterceptor.java:20) @ org.mule.execution.handleexceptioninterceptor.execute(handleexceptioninterceptor.java:34) @ org.mule.execution.handleexceptioninterceptor.execute(handleexceptioninterceptor.java:18) @ org.mule.execution.beginandresolvetransactioninterceptor.execute(beginandresolvetransactioninterceptor.java:58) @ org.mule.execution.resolveprevioustransactioninterceptor.execute(resolveprevioustransactioninterceptor.java:48) @ org.mule.execution.suspendxatransactioninterceptor.execute(suspendxatransactioninterceptor.java:54) @ org.mule.execution.validatetransactionalstateinterceptor.execute(validatetransactionalstateinterceptor.java:44) @ org.mule.execution.isolatecurrenttransactioninterceptor.execute(isolatecurrenttransactioninterceptor.java:44) @ org.mule.execution.externaltransactioninterceptor.execute(externaltransactioninterceptor.java:52) @ org.mule.execution.rethrowexceptioninterceptor.execute(rethrowexceptioninterceptor.java:32) @ org.mule.execution.rethrowexceptioninterceptor.execute(rethrowexceptioninterceptor.java:17) @ org.mule.execution.transactionalerrorhandlingexecutiontemplate.execute(transactionalerrorhandlingexecutiontemplate.java:113) @ org.mule.execution.transactionalerrorhandlingexecutiontemplate.execute(transactionalerrorhandlingexecutiontemplate.java:34) @ org.mule.processor.asyncinterceptingmessageprocessor$asyncmessageprocessorworker.dorun(asyncinterceptingmessageprocessor.java:184) @ org.mule.work.abstractmuleeventwork.run(abstractmuleeventwork.java:43) @ org.mule.work.workercontext.run(workercontext.java:311) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source) error 2013-05-14 11:13:15,271 [[invokeawebservice].invokeawebserviceflow1.stage1.02] org.mule.exception.defaultmessagingexceptionstrategy: ******************************************************************************** message : unexpected wrapper element {http://douane.ws/}find found. expected {http://douane.ws/}findresponse.. failed route event via endpoint: org.mule.module.cxf.cxfoutboundmessageprocessor. message payload of type: string code : mule_error--2 -------------------------------------------------------------------------------- exception stack is: 1. unexpected wrapper element {http://douane.ws/}find found. expected {http://douane.ws/}findresponse. (org.apache.cxf.interceptor.fault) org.apache.cxf.interceptor.docliteralininterceptor:106 (null) 2. unexpected wrapper element {http://douane.ws/}find found. expected {http://douane.ws/}findresponse.. failed route event via endpoint: org.mule.module.cxf.cxfoutboundmessageprocessor. message payload of type: string (org.mule.api.transport.dispatchexception) org.mule.module.cxf.cxfoutboundmessageprocessor:144 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/dispatchexception.html) -------------------------------------------------------------------------------- root exception stack trace: org.apache.cxf.interceptor.fault: unexpected wrapper element {http://douane.ws/}find found. expected {http://douane.ws/}findresponse. @ org.apache.cxf.interceptor.docliteralininterceptor.handlemessage(docliteralininterceptor.java:106) @ org.apache.cxf.phase.phaseinterceptorchain.dointercept(phaseinterceptorchain.java:263) @ org.apache.cxf.endpoint.clientimpl.onmessage(clientimpl.java:799) + 3 more (set debug level logging or '-dmule.verbose.exceptions=true' everything) ******************************************************************************** any ??
if webservice want consume hosted, let's @ http://domain.com/ws , configuration should this:
<flow name="invokeawebserviceflow1" doc:name="invokeawebserviceflow1"> <file:inbound-endpoint path="c:\mulestudio\sandbox\input" pollingfrequency="3000" responsetimeout="10000" doc:name="file"/> <file:file-to-string-transformer encoding="utf-8" mimetype="text/xml" doc:name="file string"/> <cxf:jaxws-client port="douanewsport" serviceclass="wsdl.douanews" doc:name="soap" enablemulesoapheaders="true" operation="find"/> <http:outbound-endpoint address="http://domain.com/ws" /> <echo-component doc:name="echo"/> <file:outbound-endpoint path="c:\mulestudio\sandbox\output" outputpattern="#[function:datestamp:dd-mm-yy]_#[function:systime].xml" responsetimeout="10000" doc:name="file"/> </flow> you can find more informations on topic here
Comments
Post a Comment