[mule-user] Issue with RestServiceWrapper

1 view
Skip to first unread message

prathamesh

unread,
Jul 16, 2007, 3:45:56 AM7/16/07
to us...@mule.codehaus.org

Hi,
I have a Mule descriptor which takes as input a jms msg and converts it
into a String. I have used the following code form stock quote sample and
written a REST based web service which returns an xml file.
My mule descriptor:
<mule-descriptor name="RESTServiceWrapper"
implementation="org.mule.components.rest.RestServiceWrapper">
<inbound-router>
<global-endpoint name="inJMSGTA" transformers="ConvertObject"/>
</inbound-router>
<outbound-router>
<router
className="org.mule.routing.outbound.FilteringOutboundRouter">
<endpoint address="stream://System.out" transformers="XmlDecoder
Xslt XmlToObject"/>
</router>
</outbound-router>
<properties>
<property name="serviceUrl"
value="http://172.17.122.243:9090/test/FirstServlet"/>
<property name="payloadParameterName" value="price"/>
<property name="httpMethod" value="GET"/>
</properties>
</mule-descriptor>

The XML file returned is
<soapenv:Envelope>
<soapenv:Body>
<GetQuoteResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<GetQuoteReturn xsi:type="xsd:string">accepted</GetQuoteReturn>
</GetQuoteResponse>
</soapenv:Body>
</soapenv:Envelope>

Now i have noticed that the web service does get called and also returns the
xml file when i do not apply the transformers on "the out stream". But i
would like to get the parsed element "accepted" instead of the whole XML
file. so i used the transformers mentioned in Stock Quote sample which uses
the same transformers for parsing a similar file. Yet I get the following
errors:

ERROR 2007-07-16 13:08:04,195 [jmsConnector1.inJMSGTA.receiver.1]
org.mule.impl.DefaultComponentExceptionStrategy: Caught exception in
Exception Strategy for: RESTServiceWrapper:
org.mule.umo.routing.RoutingException: Failed to route event via endpoint:
null. Message payload is of type: [B
org.mule.umo.routing.RoutingException: Failed to route event via endpoint:
null. Message payload is of type: [B
at
org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:85)
at
org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:275)
at
org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:328)
at
org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:412)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:352)
at
org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:194)
at
org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:160)
at
org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:558)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:304)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:244)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:237)
at
org.mule.providers.jms.JmsMessageReceiver$Worker.run(JmsMessageReceiver.java:92)
at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.mule.umo.routing.CouldNotRouteOutboundMessageException:
Failed to route event via endpoint:
MuleEndpoint{connector=org.mule.providers.stream.SystemStreamConnector@186f247,
endpointUri=stream://System.out, transformer=Transformer{name='XmlDecoder',
returnClass=false, returnClass=false, sourceTypes=[class java.lang.String,
class [B, class java.lang.String]}, name='endpoint.stream.System.out',
type='sender', properties={}, transactionConfig=Transaction{factory=null,
action=NONE, timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=null,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of type:
[B at
org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutboundRouter.java:76)
at
org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:76)
at
org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:39)
at
org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:81)
... 15 more
Caused by: org.mule.umo.provider.DispatchException: Failed to route event
via endpoint:
MuleEndpoint{connector=org.mule.providers.stream.SystemStreamConnector@186f247,
endpointUri=stream://System.out, transformer=Transformer{name='XmlDecoder',
returnClass=false, returnClass=false, sourceTypes=[class java.lang.String,
class [B, class java.lang.String]}, name='endpoint.stream.System.out',
type='sender', properties={}, transactionConfig=Transaction{factory=null,
action=NONE, timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=null,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of type:
[B
at
org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:261)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:328)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:209)
at
org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:118)
at
org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutboundRouter.java:67)
... 18 more
Caused by: com.thoughtworks.xstream.io.StreamException: : only whitespace
content allowed before start tag and not a (position: START_DOCUMENT seen
<?xml version="1.0" encoding="UTF-8"?>a... @1:39)
at
com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:67)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:126)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:119)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:98)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:83)
at
com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:37)
at
com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:30)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:767)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:759)
at
org.mule.transformers.xml.XmlToObject.transform(XmlToObject.java:54)
at
org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:41)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:239)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
at org.mule.impl.MuleEvent.getTransformedMessage(MuleEvent.java:356)
at
org.mule.providers.stream.StreamMessageDispatcher.doDispatch(StreamMessageDispatcher.java:103)
at
org.mule.providers.stream.StreamMessageDispatcher.doSend(StreamMessageDispatcher.java:123)
at
org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:233)
... 22 more
Caused by: org.xmlpull.v1.XmlPullParserException: only whitespace content
allowed before start tag and not a (position: START_DOCUMENT seen <?xml
version="1.0" encoding="UTF-8"?>a... @1:39)
at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1519)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at
com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:52)
... 39 more
ERROR 2007-07-16 13:08:04,276 [jmsConnector1.inJMSGTA.receiver.1]
org.mule.impl.DefaultComponentExceptionStrategy:
********************************************************************************
Message : Failed to route event via endpoint:
MuleEndpoint{connector=org.mule.providers.stream.SystemStreamConnector@186f247,
endpointUri=stream://System.out, transformer=Transformer{name='XmlDecoder',
returnClass=false, returnClass=false, sourceTypes=[class java.lang.String,
class [B, class java.lang.String]}, name='endpoint.stream.System.out',
type='sender', properties={}, transactionConfig=Transaction{factory=null,
action=NONE, timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=null,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of type:
[B
Type : org.mule.umo.provider.DispatchException
Code : MULE_ERROR-42999
JavaDoc :
http://mule.codehaus.org/docs/apidocs/org/mule/umo/provider/DispatchException.html
Payload : [B@74cb02
********************************************************************************
Exception stack is:
1. only whitespace content allowed before start tag and not a (position:
START_DOCUMENT seen <?xml version="1.0" encoding="UTF-8"?>a... @1:39)
(org.xmlpull.v1.XmlPullParserException)
org.xmlpull.mxp1.MXParser:1519 (null)
2. : only whitespace content allowed before start tag and not a (position:
START_DOCUMENT seen <?xml version="1.0" encoding="UTF-8"?>a... @1:39)
(com.thoughtworks.xstream.io.StreamException)
com.thoughtworks.xstream.io.xml.XppReader:67 (null)
3. Failed to route event via endpoint:
MuleEndpoint{connector=org.mule.providers.stream.SystemStreamConnector@186f247,
endpointUri=stream://System.out, transformer=Transformer{name='XmlDecoder',
returnClass=false, returnClass=false, sourceTypes=[class java.lang.String,
class [B, class java.lang.String]}, name='endpoint.stream.System.out',
type='sender', properties={}, transactionConfig=Transaction{factory=null,
action=NONE, timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=null,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of type:
[B (org.mule.umo.provider.DispatchException)
org.mule.providers.AbstractMessageDispatcher:261
(http://mule.codehaus.org/docs/apidocs/org/mule/umo/provider/DispatchException.html)
********************************************************************************
Root Exception stack trace:
org.xmlpull.v1.XmlPullParserException: only whitespace content allowed
before start tag and not a (position: START_DOCUMENT seen <?xml
version="1.0" encoding="UTF-8"?>a... @1:39)
at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1519)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at
com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:52)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:126)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:119)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:98)
at
com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:83)
at
com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:37)
at
com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:30)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:767)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:759)
at
org.mule.transformers.xml.XmlToObject.transform(XmlToObject.java:54)
at
org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:41)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:239)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
at org.mule.impl.MuleEvent.getTransformedMessage(MuleEvent.java:356)
at
org.mule.providers.stream.StreamMessageDispatcher.doDispatch(StreamMessageDispatcher.java:103)
at
org.mule.providers.stream.StreamMessageDispatcher.doSend(StreamMessageDispatcher.java:123)
at
org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:233)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:328)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:209)
at
org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:118)
at
org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutboundRouter.java:67)
at
org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:76)
at
org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:39)
at
org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:81)
at
org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:275)
at
org.mule.impl.model.seda.SedaComponent.doSend(SedaComponent.java:328)
at
org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:412)
at org.mule.impl.MuleSession.sendEvent(MuleSession.java:352)
at
org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:194)
at
org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:160)
at
org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:558)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:304)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:244)
at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:237)
at
org.mule.providers.jms.JmsMessageReceiver$Worker.run(JmsMessageReceiver.java:92)
at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
at java.lang.Thread.run(Thread.java:595)

********************************************************************************

WARN 2007-07-16 13:08:04,307 [jmsConnector1.inJMSGTA.receiver.1]
org.mule.config.ExceptionHelper: Failed to load error mappings from:
META-INF/services/org/mule/config/jms-exception-mappings.properties. This
may be because there are no error code mappings for protocol: jms


Someone Please Help. Thanks in advance.
Prathamesh
--
View this message in context: http://www.nabble.com/Issue-with-RestServiceWrapper-tf4084990.html#a11610524
Sent from the Mule - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Andrew Perepelytsya

unread,
Jul 24, 2007, 4:53:36 PM7/24/07
to us...@mule.codehaus.org
This should be fixed in trunk now (there's a jira for it even, but I'm lazy at this moment to look it up ;)

org.mule.impl.model.AbstractComponent.sendEvent (AbstractComponent.java:412)

        at org.mule.impl.MuleSession.sendEvent(MuleSession.java:352)
        at
org.mule.routing.inbound.InboundMessageRouter.send(InboundMessageRouter.java:194)
        at
org.mule.routing.inbound.InboundMessageRouter.route (InboundMessageRouter.java:160)
        at
org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:558)
        at
org.mule.providers.AbstractMessageReceiver.routeMessage (AbstractMessageReceiver.java:304)

        at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:244)
        at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java :237)
        at
org.mule.providers.jms.JmsMessageReceiver$Worker.run(JmsMessageReceiver.java:92)
        at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:987)

        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.mule.umo.routing.CouldNotRouteOutboundMessageException :
Failed to route event via endpoint:
MuleEndpoint{connector=org.mule.providers.stream.SystemStreamConnector@186f247,
endpointUri=stream://System.out, transformer=Transformer{name='XmlDecoder',
returnClass=false, returnClass=false, sourceTypes=[class java.lang.String,
class [B, class java.lang.String]}, name='endpoint.stream.System.out',
type='sender', properties={}, transactionConfig=Transaction{factory=null,
action=NONE, timeout=30000}, filter=null, deleteUnacceptedMessages=false,
initialised=true, securityFilter=null, synchronous=null,
initialState=started, createConnector=0, remoteSync=null,
remoteSyncTimeout=null, endpointEncoding=null}. Message payload is of type:
[B        at
org.mule.routing.outbound.FilteringOutboundRouter.route (FilteringOutboundRouter.java:76)
com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown (AbstractPullReader.java:83)

        at
com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:37)
        at
com.thoughtworks.xstream.io.xml.XppDriver.createReader(XppDriver.java:30)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:767)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:759)
        at
org.mule.transformers.xml.XmlToObject.transform(XmlToObject.java:54)
        at
org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:41)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:239)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
        at org.mule.impl.MuleEvent.getTransformedMessage (MuleEvent.java:356)
com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent (AbstractPullReader.java:126)

        at
com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:119)
        at
com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java :98)
        at
com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:83)
        at
com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:37)
        at
com.thoughtworks.xstream.io.xml.XppDriver.createReader (XppDriver.java:30)

        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:767)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:759)
        at
org.mule.transformers.xml.XmlToObject.transform (XmlToObject.java:54)

        at
org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:41)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java :239)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
        at
org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:257)
        at org.mule.impl.MuleEvent.getTransformedMessage (MuleEvent.java:356)

        at
org.mule.providers.stream.StreamMessageDispatcher.doDispatch(StreamMessageDispatcher.java:103)
        at
org.mule.providers.stream.StreamMessageDispatcher.doSend(StreamMessageDispatcher.java :123)
        at
org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:233)
        at org.mule.impl.MuleSession.sendEvent(MuleSession.java:328)
        at org.mule.impl.MuleSession.sendEvent (MuleSession.java:209)

        at
org.mule.routing.outbound.AbstractOutboundRouter.send(AbstractOutboundRouter.java:118)
        at
org.mule.routing.outbound.FilteringOutboundRouter.route(FilteringOutboundRouter.java :67)
        at
org.mule.routing.outbound.OutboundMessageRouter$1.doInTransaction(OutboundMessageRouter.java:76)
        at
org.mule.transaction.TransactionTemplate.execute(TransactionTemplate.java:39)
        at
org.mule.routing.outbound.OutboundMessageRouter.route(OutboundMessageRouter.java:81)
        at
org.mule.impl.model.DefaultMuleProxy.onCall(DefaultMuleProxy.java:275)
        at
org.mule.impl.model.seda.SedaComponent.doSend (SedaComponent.java:328)

        at
org.mule.impl.model.AbstractComponent.sendEvent(AbstractComponent.java:412)
        at org.mule.impl.MuleSession.sendEvent(MuleSession.java:352)
        at
org.mule.routing.inbound.InboundMessageRouter.send (InboundMessageRouter.java:194)
        at
org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:160)
        at
org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage (AbstractMessageReceiver.java:558)

        at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:304)
        at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java :244)
        at
org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:237)
        at
org.mule.providers.jms.JmsMessageReceiver$Worker.run(JmsMessageReceiver.java:92)
        at org.mule.impl.work.WorkerContext.run(WorkerContext.java:310)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:528)
Reply all
Reply to author
Forward
0 new messages