Using this:
Source source = exchange.getMessage("in").getContent();
SourceTransformer sourceTransformer = new SourceTransformer();
String inMessage = sourceTransformer.toString(source);
I get the following exception:
javax.xml.transform.TransformerException: java.io.IOException: Stream closed
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:505)
at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:85)
at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:101)
at
de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.readStream(FileToTopicTransmitter.java:169)
at
de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.onMessageExchange(FileToTopicTransmitter.java:70
at
org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:224)
at
org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:201)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
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:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.IOException: Stream closed
at
java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:189)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at
org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown
Source)
at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
... 16 more
---------
java.io.IOException: Stream closed
at
java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:189)
at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
at
org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(Unknown
Source)
at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toResult(SourceTransformer.java:85)
at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toString(SourceTransformer.java:101)
at
de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.readStream(FileToTopicTransmitter.java:169)
at
de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.onMessageExchange(FileToTopicTransmitter.java:70
at
org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:224)
at
org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:201)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
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:650)
at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Greets Goldi
Gert Vanthienen wrote:
>
> Goldi,
>
> Does anything else happen in the onMessageExchange before the
> readStream? Have you tried using ServiceMix's built-in
> SourceTransformer.toString(Source) method to transform the Source to
> XML? Does that give you the same error message?
>
> Gert
>
> goldi wrote:
>> HI everybody,
>>
>>
>> I'm using the file poller to read a file from the file system and then
>> send
>> the content of the file to a servicemix-bean component. There I want to
>> do
>> something with the file content an then send to a topic.
>> So this is the code inside the servicemix-bean component.
>>
>> public void onMessageExchange(MessageExchange exchange) {
>>
>> String strFileContent=readStream(exchange);
>>
>> ... doSomething with the content
>>
>> ...send to Topic
>>
>> }
>>
>> private String readStream(MessageExchange exchange) {
>> Source source = exchange.getMessage("in").getContent();
>> StreamSource ssource = null;
>> InputStream stream = null;
>> String strFileContent = "";
>>
>> if (source instanceof StreamSource) {
>> ssource = (StreamSource) source;
>> }
>>
>> if (ssource != null) {
>>
>> stream = ssource.getInputStream();
>>
>> byte buffer[] = new byte[10000];
>>
>> int len = 0;
>> try {
>> len = stream.read(buffer, 0, 4000);
>> } catch (IOException e) {
>> // TODO Auto-generated catch block
>> e.printStackTrace();
>> }
>> strFileContent = new String(buffer, 0, len);
>>
>> return strFileContent;
>>
>> }
>>
>> return null;
>> }
>>
>>
>> The problem is that I get the following exception:
>>
>> java.io.IOException: Stream closed
>> at
>> java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:145)
>> at java.io.BufferedInputStream.read(BufferedInputStream.java:304)
>> at
>> de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.readStream(FileToTopicTransmitter.java:165)
>> at
>> de.it4logistics.prologsSE.messageReceiver.FileToTopicTransmitter.onMessageExchange(FileToTopicTransmitter.java:64)
>> at
>> org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:224)
>> at
>> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:201)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>> at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
>> at
>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>> at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>> 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:650)
>> at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>> at java.lang.Thread.run(Thread.java:595)
>>
>>
>> So I have the problem, that I do not get the content of the file. Has
>> someone a solution for this problem?
>>
>>
>> Greets goldi
>>
>>
>>
>>
>>
>>
>
>
>
--
View this message in context:
http://www.nabble.com/FileWriter-to-ServiceMix-Bean-Problem%21-tf3726051s12049.html#a10429803
Sent from the ServiceMix - User mailing list archive at Nabble.com.