[mule-user] [Mule 2.0.2]: Error using SXC (ReversibleXMLStreamReader ---> InputStream?)

0 views
Skip to first unread message

raulvk

unread,
Jul 23, 2008, 2:05:12 PM7/23/08
to us...@mule.codehaus.org
Hi everyone,

I am feeling adventurous so I am trying out the new SXC module introduced in Mule 2.0.2, but I am coming across the following error:

ERROR 2008-07-23 18:53:01,934 [FileInConnector.dispatcher.4] org.mule.DefaultExceptionStrategy:
********************************************************************************
Message               : Could not find a transformer to transform "org.mule.module.xml.stax.ReversibleXMLStreamReader" to "java.io.InputStream".
Type                  : org.mule.api.transformer.TransformerException
Code                  : MULE_ERROR-65237
JavaDoc               : http://mule.mulesource.org/docs/apidocs/org/mule/api/transformer/TransformerException.html
********************************************************************************
Exception stack is:
1. Could not find a transformer to transform "org.mule.module.xml.stax.ReversibleXMLStreamReader" to "java.io.InputStream". (org.mule.api.transformer.
TransformerException)
  org.mule.registry.AbstractRegistry:289 (http://mule.mulesource.org/docs/apidocs/org/mule/api/transformer/TransformerException.html)
********************************************************************************
Root Exception stack trace:
org.mule.api.transformer.TransformerException: Could not find a transformer to transform "org.mule.module.xml.stax.ReversibleXMLStreamReader" to "java
.io.InputStream".
        at org.mule.registry.AbstractRegistry.lookupTransformer(AbstractRegistry.java:289)
        at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:175)
        at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:133)
        at org.mule.DefaultMuleEvent.transformMessage(DefaultMuleEvent.java:317)
        at org.mule.transport.file.FileMessageDispatcher.doDispatch(FileMessageDispatcher.java:82)
        at org.mule.transport.AbstractMessageDispatcher$Worker.run(AbstractMessageDispatcher.java:262)
        at org.mule.work.WorkerContext.run(WorkerContext.java:310)
        at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
        at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
        at java.lang.Thread.run(Unknown Source)

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

My config is the following. The block where the error is generated is the outbound router.

    <file:connector name="FileInConnector" streaming="true" />

        <service name="StreamingTest">
            <inbound>
                <file:inbound-endpoint path="d:/streamingExample/in" connector-ref="FileInConnector />
            </inbound>

            <outbound>
                <sxc:filtering-router>
                    <file:outbound-endpoint path="d:/streamingExample/out/A" outputPattern="test_A_[UUID].txt" />
                    <sxc:filter pattern="//data/testValue[text()='A']"/>
                </sxc:filtering-router>
                <sxc:filtering-router>
                    <file:outbound-endpoint path="d:/streamingExample/out/B" outputPattern="test_B_[UUID].txt" />
                    <sxc:filter pattern="//data/testValue[text()='B']"/>
                </sxc:filtering-router>
            </outbound>


Any idea of what transformer is needed to solve this issue? The whole point is to use streaming all along, so transforming to a byte[] or some kind of object is not an option...

Thank you very much.



Dan Diephouse

unread,
Jul 23, 2008, 2:33:16 PM7/23/08
to us...@mule.codehaus.org
Hi,

You need to add an XmlToOutputHandler transformer on your outbound endpoints:

<file:outbound-endpoint ...>
  <transformers>
    <custom-transformer class="org.mule.module.xml.transformer.XmlToOutputHandler"/>
  </transformers>
</file:outbound-endpoint>

Theoretically Mule should do this automagically, but the File dispatcher requests an InputStream instead of an OutputHandler in 2.0.2.

Cheers,
Dan
Reply all
Reply to author
Forward
0 new messages