I'm trying to set up a simple jms to xslt to jms assembly, but I'm running
into problems with the xslt transfrom. If I set the targetService attribute
of the consumer to be the jmsProviderService, the jms message goes through
without a problem. However if I set the targetService to be the xslt
transform (as shown below), then I get a "Premature end of file" (full error
at the bottom).
I'm pretty new to ServiceMix and I don't know if I'm setting this up
correctly. Most of this is pulled from various examples on the website.
Anyone have any ideas why this isn't working?
Here is my relevant xbean stuff:
<!-- consumer -->
<jms:endpoint service="axo:jmsConsumerService"
endpoint="jmsConsumer"
targetService="axo:xsltTransformService"
role="consumer"
destinationStyle="queue"
jmsProviderDestinationName="queue/A"
connectionFactory="#connectionFactory"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out" />
<!-- provider -->
<jms:endpoint service="axo:jmsProviderService"
endpoint="jmsProvider"
role="provider"
destinationStyle="queue"
jmsProviderDestinationName="queue/B"
connectionFactory="#connectionFactory"
/>
<!-- transform -->
<saxon:xslt service="axo:xsltTransformService" endpoint="xsltTransform"
result="string"
resource="classpath:transform.xslt" />
<!-- pipeline -->
<eip:pipeline service="axo:pipelineService" endpoint="pipeline">
<eip:transformer>
<eip:exchange-target service="axo:xsltTransformService" />
</eip:transformer>
<eip:target>
<eip:exchange-target service="axo:jmsProvider" />
</eip:target>
</eip:pipeline>
[Fatal Error] :-1:-1: Premature end of file.
ERROR - JmsComponent - Error processing exchange InOut[
id: ID:137.249.46.82-1151f80803c-4:6
status: Done
role: consumer
service: {http://axo}xsltTransformService
endpoint: xsltTransform
in: Unable to display: org.xml.sax.SAXParseException: Premature end of
file.
out: <?xml version="1.0" encoding="UTF-8"?><Test>Hello World</Test>
]
java.lang.UnsupportedOperationException: A destination must be specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356)
at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:595)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:619)
ERROR - JmsComponent - Error setting exchange status to
ERROR
java.lang.IllegalStateException: component is not owner when trying to set
error: java.lang.UnsupportedOperationException: A destination must be
specified.
at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setError(MessageExchangeImpl.java:224)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:57)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:595)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.UnsupportedOperationException: A destination must be
specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:356)
at
org.apache.servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(MultiplexingConsumerProcessor.java:125)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
... 7 more
--
View this message in context:
http://www.nabble.com/XsltComponent%3A-Premature-end-of-file.-tf4483983s12049.html#a12786810
Sent from the ServiceMix - User mailing list archive at Nabble.com.