You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by "Vasumathi, Rajamarthandan" <Ra...@caremark.com> on 2009/02/05 13:48:59 UTC

in: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Hi All,
 
I am new to service Mix and JBI. I am getting the below error while
executing a content enricher EIP. The service Mix version I am using is
3.3.1.3. I am using In-Only exchange pattern.
 
 Overall flow goes like this
 
JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a
Single Service Unit)
 
Error I am facing
 
[Fatal Error] :-1:-1: Premature end of file.
[Fatal Error] :-1:-1: Premature end of file.
ERROR - EIPComponent                   - Error processing exchange
InOnly[
  id: ID:10.102.11.29-11f46231bc3-11:0
  status: Active
  role: provider
  service: {http://test}MyStaticRoutingSlip1Service
  endpoint: myStaticRoutingSlip1Su
  operation: {http://test}onMessage
  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
file
]
org.xml.sax.SAXParseException: Premature end of file.
 
Please find the code
 
JMS BC
-------
 
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
 <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
  targetService="test:MyStaticRoutingSlip1Service"
targetEndpoint="myStaticRoutingSlip1Su"
  role="consumer" destinationStyle="queue"
jmsProviderDestinationName="myJmsQueueTest"
  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
defaultOperation="test:onMessage"
  connectionFactory="#connectionFactory">
 </jms:endpoint>
 <amq:connectionFactory id="connectionFactory"
  brokerURL="tcp://localhost:61616" />
</beans>
 
Cotent Enricher EIP
-------------------
<beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
xmlns:test="http://test">
<eip:content-enricher service="test:MyStaticRoutingSlip1Service"
endpoint="myStaticRoutingSlip1Su">
  <eip:enricherTarget>
    <eip:exchange-target service="test:MyS1PojoService"/>
  </eip:enricherTarget>
 
</eip:content-enricher>
</beans>
 
Service Unit  - Pojo code
--------------------------
 
public void onMessageExchange(MessageExchange exchange)
{
 if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
  
   NormalizedMessage normalizedMessage =null;
   NormalizedMessage normalizedMessageOut=null;
   normalizedMessage = exchange.getMessage("in"); 
   normalizedMessageOut= exchange.createMessage(); 
   String outMessage = processXml(normalizedMessage);
   normalizedMessageOut.setContent(new StringSource(outMessage));
   exchange.setMessage(normalizedMessageOut, "out");
   exchange.setStatus(ExchangeStatus.ACTIVE);
   channel.send(exchange);
   
  }
  } 
  
I am struggling for the past four days with this issue. Please help me
to solve the issue.
 
Thanks
Vasumathi  
 
 
 
 
 

 

Re: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by "Vasumathi, Rajamarthandan" <Ra...@caremark.com>.
Hi  Gert Vanthienen,

I changed the code of MyBean like below. It solved the "Premature end of
file" issue. But the output goes in infinite loop.
	InOnly eipInOnly =
	
channel.createExchangeFactory().createInOnlyExchange();
			NormalizedMessage normalizedMessage =null;
			NormalizedMessage normalizedMessageOut=null;
			normalizedMessage = exchange.getMessage("in");	
			normalizedMessageOut= exchange.createMessage();	
			String outMessage =
processXml(normalizedMessage);
			normalizedMessageOut.setContent(new
StringSource(outMessage));
			
			//QName qName = new
QName("test:MyS2PojoService");
			//eipInOnly.setService(qName);
			//channel.createExchangeFactory(qName);
			
			eipInOnly.setService(exchange.getService());
			eipInOnly.setEndpoint(exchange.getEndpoint());
			eipInOnly.setMessage(normalizedMessageOut,
"in");
			
			logger
			.debug("After Channel Send: "
					+ exchange);
			channel.send(eipInOnly);

I observed that the control comes back to MyBean of MyS1PojoService
from MyBean of MyS1PojoService. So want to hard-code the service
MyS2PojoService and corresponding end point MyS2Pojo. I am not sure how
to create a ServiceEndpoint for MyS2Pojo.

I found a thread
http://markmail.org/search/?q=Content+Enricher#query:Content%20Enricher+
page:2+mid:btupu6okwwbyzklp+state:results , it is mentioned like this 
ServiceEndpoint se =
getContext().getEndpoint(cbrServiceName,"enricherEndpoint");

I tried to do the same but getContext is not visible from my workspace,
to have that getContext visibility, should I have any special plug-in?
Please explain.

Thanks
Vasumathi


 


-----Original Message-----
From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com] 
Sent: Friday, February 06, 2009 6:54 AM
To: users@servicemix.apache.org
Subject: Re: Unable to display: org.xml.sax.SAXParseException: Premature
end of file

Vasumathi,

Not sure if you're both working on the same project, but a user on the
fusesource.com forum had a very similar problem.  Just providing a
reference to the thread so it might help you as well
http://fusesource.com/forums/thread.jspa?threadID=594&tstart=0.

The MEP change you observed is OK actually: the content-enricher
receives an InOnly exchange and then sends a second, InOut exchange to
the servicemix-bean POJO.  The in message will contain the original
message content and your bean can provide the enriched content.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/2/6 vasumathi <Ra...@caremark.com>:
>
> Hi Gert Vanthienen,
>
> As you advised, I have changed the DEBUG logging of the container. 
> Please find the console log. The control passes MyBean successfully 
> but erroring out in EIP component.
>
> It leads to another doubt. When the control reaches MyBean(SU), the 
> exchange pattern is Inout but in router it is InOnly. I have coded the

> default message pattern as In-Only only.
>
> Please clarify the same and let me know if you have any clue to solve 
> the issue.
>
> Thanks
> Vasumathi
>
>
> DEBUG - MyBean                         - ## Received exchange with
status
> ACTIVE
> : InOut[
>  id: ID:10.102.11.29-11f4a35617b-7:4
>  status: Active
>  role: provider
>  service: {http://test}MyS1PojoService
>  endpoint: myS1PojoSu
>  in: <?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content 
> Based Rounter  2222</input2> ]
> DEBUG - MyBean                         - ## In Message: <?xml
version="1.0"
> enco
> ding="UTF-8"?><input2>Tesing Content Based Rounter 2222</input2> 
> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content 
> Based Rounter 2222</input2> coreMessage from Service1<input2>Tesing 
> Content Based Rounter 2222</input2>
> DEBUG - MyBean                         - ## Out Message:
> <response1><input2>Tesi
> ng Content Based Rounter 2222</input2></response1>
> 11111111
> ## Out Message: <response1><input2>Tesing Content Based Rounter 
> 2222</input2></r
> esponse1>
> after processXml11111<response1><input2>Tesing Content Based Rounter 
> 2222</input
> 2></response1>
> set contentStringSource[<response1><input2>Tesing Content Based 
> Rounter 2222</in
> put2></response1>]
> before sending
> after sending
> [Fatal Error] :-1:-1: Premature end of file.
> [Fatal Error] :-1:-1: Premature end of file.
> ERROR - EIPComponent                   - Error processing exchange
InOnly[
>  id: ID:10.102.11.29-11f4a35617b-11:4
>  status: Active
>  role: provider
>  service: {http://test}MyStaticRoutingSlip1Service
>  endpoint: myStaticRoutingSlip1Su
>  operation: {http://test}onMessageExchange
>  in: Unable to display: org.xml.sax.SAXParseException: Premature end 
> of file.
> ]
> org.xml.sax.SAXParseException: Premature end of file.
>        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown
Source)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStrea
> m(SourceTransformer.java:268)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTr
> ansformer.java:175)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTran
> sformer.java:311)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.getDOMNode(Content
> Enricher.java:247)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.combineToDOMDocume
> nt(ContentEnricher.java:213)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.process(ContentEnr
> icher.java:168)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi
> feCycle.java:540)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async
> BaseLifeCycle.java:492)
>        at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
> Cycle.java:46)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
> d(DeliveryChannelImpl.java:610)
>        at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
> w.java:172)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
> ava:167)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
> a:134)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
>        at java.lang.Thread.run(Thread.java:595)
>
>
>
>
> Gert Vanthienen wrote:
>>
>> Vasumathi,
>>
>> Could you try enabling DEBUG logging for the container itself as 
>> explained in 
>> http://servicemix.apache.org/how-do-i-change-the-logging.html?
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/2/5 Vasumathi, Rajamarthandan
>> <Ra...@caremark.com>:
>>> Hi Gert Vanthienen
>>>
>>> Thanks for your reply. I had debug statements, just removed them 
>>> before submitting the code to forum. Please find the bean method 
>>> with debug statements and the console displaying/printing the
statement values.
>>>
>>> It is executing onMessageExchange successfully while the control 
>>> returning back from onMessageExchange method to router the router 
>>> occurs (I guess).
>>>
>>> Please help me to solve this issue. I am struggling for the past 
>>> four days with the same issue.
>>>
>>> Bean method
>>> -----------
>>>
>>>        public void onMessageExchange(MessageExchange exchange)
>>>                        throws MessagingException {
>>>
>>>                if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>                        NormalizedMessage normalizedMessage =null;
>>>                        NormalizedMessage normalizedMessageOut=null;
>>>                        normalizedMessage =
exchange.getMessage("in");
>>>                        normalizedMessageOut=
exchange.createMessage();
>>>                        String outMessage = 
>>> processXml(normalizedMessage);
>>>                        System.out.println("after processXml11111" + 
>>> outMessage);
>>>                        normalizedMessageOut.setContent(new
>>> StringSource(outMessage));
>>>                        System.out.println("set 
>>> content"+normalizedMessageOut.getContent().toString());
>>>                        exchange.setMessage(normalizedMessageOut,
>>> "out");
>>>                        exchange.setStatus(ExchangeStatus.ACTIVE);
>>>                        System.out.println("before sending");
>>>                        channel.send(exchange);
>>>                        System.out.println("after sending");
>>>                }
>>>        }
>>>        private String processXml(NormalizedMessage 
>>> normalizedMessage) throws MessagingException {
>>>   SourceTransformer sourceTransformer = new SourceTransformer();
>>>   String inMessage = "";
>>>   try {
>>>   inMessage = sourceTransformer.contentToString(normalizedMessage);
>>>   } catch (Exception e) {
>>>   throw new MessagingException(e);
>>>   }
>>>   System.out.println("input"+inMessage);
>>>   System.out.println("coreMessage from Service1"+coreMessage);
>>>   String outMessage ="<response1>" + coreMessage + "</response1>";
>>>   System.out.println("11111111");
>>>   System.out.println("## Out Message: " + outMessage);
>>>   return outMessage;
>>>   }
>>> }
>>>
>>> Server console output
>>> ---------------------
>>>
>>> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content 
>>> Based Rounter 2222</input2> coreMessage from Service1<input2>Tesing 
>>> Content Based Rounter 2222</input2>
>>> 11111111
>>> ## Out Message: <response1><input2>Tesing Content Based Rounter 
>>> 2222</input2></r
>>> esponse1>
>>> after processXml11111<response1><input2>Tesing Content Based Rounter

>>> 2222</input
>>> 2></response1>
>>> set contentStringSource[<response1><input2>Tesing Content Based 
>>> Rounter 2222</in
>>> put2></response1>]
>>> before sending
>>> after sending
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> ERROR - EIPComponent                   - Error processing exchange
>>> InOnly[
>>>  id: ID:10.102.11.29-11f46231bc3-11:2
>>>  status: Active
>>>  role: provider
>>>  service: {http://test}MyStaticRoutingSlip1Service
>>>  endpoint: myStaticRoutingSlip1Su
>>>  operation: {http://test}onMessage
>>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end

>>> of file.
>>> ]
>>> org.xml.sax.SAXParseException: Premature end of file.
>>>
>>> Please help me to solve this issue. I am struggling for the past 
>>> four days with the same issue.
>>>
>>> Thanks
>>> Vasumathi
>>>
>>>
>>> -----Original Message-----
>>> From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com]
>>> Sent: Thursday, February 05, 2009 7:46 AM
>>> To: users@servicemix.apache.org
>>> Subject: Re: Unable to display: org.xml.sax.SAXParseException: 
>>> Premature end of file
>>>
>>> Vasumathi,
>>>
>>> This is probably caused by something consuming a StreamSource or 
>>> StaxSource before your service touches it.  To make sure that this 
>>> is the cause, could you try enabling DEBUG logging because this 
>>> should 'solve' the issue then?
>>>
>>> Once we are sure that this is the cause of the problem, we should 
>>> try to modify the bean method so that it converts the source into a 
>>> re-readable source type before actually processing it.  Our 
>>> MessageUtil class has a method named enableContentRereadability() 
>>> that was created exactly for this purpose.
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/2/5 Vasumathi, Rajamarthandan
>>> <Ra...@caremark.com>:
>>>> Hi All,
>>>>
>>>> I am new to service Mix and JBI. I am getting the below error while

>>>> executing a content enricher EIP. The service Mix version I am 
>>>> using is 3.3.1.3. I am using In-Only exchange pattern.
>>>>
>>>>  Overall flow goes like this
>>>>
>>>> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a 
>>>> Single Service Unit)
>>>>
>>>> Error I am facing
>>>>
>>>> [Fatal Error] :-1:-1: Premature end of file.
>>>> [Fatal Error] :-1:-1: Premature end of file.
>>>> ERROR - EIPComponent                   - Error processing exchange
>>>> InOnly[
>>>>  id: ID:10.102.11.29-11f46231bc3-11:0
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://test}MyStaticRoutingSlip1Service
>>>>  endpoint: myStaticRoutingSlip1Su
>>>>  operation: {http://test}onMessage
>>>>  in: Unable to display: org.xml.sax.SAXParseException: Premature 
>>>> end of file ]
>>>> org.xml.sax.SAXParseException: Premature end of file.
>>>>
>>>> Please find the code
>>>>
>>>> JMS BC
>>>> -------
>>>>
>>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>>> xmlns:test="http://test" 
>>>> xmlns:amq="http://activemq.org/config/1.0">
>>>>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>>>>  targetService="test:MyStaticRoutingSlip1Service"
>>>> targetEndpoint="myStaticRoutingSlip1Su"
>>>>  role="consumer" destinationStyle="queue"
>>>> jmsProviderDestinationName="myJmsQueueTest"
>>>>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>>>> defaultOperation="test:onMessage"
>>>>  connectionFactory="#connectionFactory">
>>>>  </jms:endpoint>
>>>>  <amq:connectionFactory id="connectionFactory"
>>>>  brokerURL="tcp://localhost:61616" /> </beans>
>>>>
>>>> Cotent Enricher EIP
>>>> -------------------
>>>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
>>>> xmlns:test="http://test">
>>>> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
>>>> endpoint="myStaticRoutingSlip1Su">
>>>>  <eip:enricherTarget>
>>>>    <eip:exchange-target service="test:MyS1PojoService"/> 
>>>> </eip:enricherTarget>
>>>>
>>>> </eip:content-enricher>
>>>> </beans>
>>>>
>>>> Service Unit  - Pojo code
>>>> --------------------------
>>>>
>>>> public void onMessageExchange(MessageExchange exchange) {  if
>>>> (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>>
>>>>   NormalizedMessage normalizedMessage =null;
>>>>   NormalizedMessage normalizedMessageOut=null;
>>>>   normalizedMessage = exchange.getMessage("in");
>>>>   normalizedMessageOut= exchange.createMessage();
>>>>   String outMessage = processXml(normalizedMessage);
>>>>   normalizedMessageOut.setContent(new StringSource(outMessage));
>>>>   exchange.setMessage(normalizedMessageOut, "out");
>>>>   exchange.setStatus(ExchangeStatus.ACTIVE);
>>>>   channel.send(exchange);
>>>>
>>>>  }
>>>>  }
>>>>
>>>> I am struggling for the past four days with this issue. Please help

>>>> me
>>>
>>>> to solve the issue.
>>>>
>>>> Thanks
>>>> Vasumathi
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>> -----
>> ---
>> Gert Vanthienen
>> http://gertvanthienen.blogspot.com
>>
>
> --
> View this message in context: 
> http://www.nabble.com/in%3A-Unable-to-display%3A-org.xml.sax.SAXParseE
> xception%3A-Premature-end-of-file-tp21850744p21867376.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by Gert Vanthienen <ge...@gmail.com>.
Vasumathi,

Not sure if you're both working on the same project, but a user on the
fusesource.com forum had a very similar problem.  Just providing a
reference to the thread so it might help you as well
http://fusesource.com/forums/thread.jspa?threadID=594&tstart=0.

The MEP change you observed is OK actually: the content-enricher
receives an InOnly exchange and then sends a second, InOut exchange to
the servicemix-bean POJO.  The in message will contain the original
message content and your bean can provide the enriched content.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/2/6 vasumathi <Ra...@caremark.com>:
>
> Hi Gert Vanthienen,
>
> As you advised, I have changed the DEBUG logging of the container. Please
> find the console log. The control passes MyBean successfully but erroring
> out in EIP component.
>
> It leads to another doubt. When the control reaches MyBean(SU), the exchange
> pattern is Inout but in router it is InOnly. I have coded the default
> message pattern as In-Only only.
>
> Please clarify the same and let me know if you have any clue to solve the
> issue.
>
> Thanks
> Vasumathi
>
>
> DEBUG - MyBean                         - ## Received exchange with status
> ACTIVE
> : InOut[
>  id: ID:10.102.11.29-11f4a35617b-7:4
>  status: Active
>  role: provider
>  service: {http://test}MyS1PojoService
>  endpoint: myS1PojoSu
>  in: <?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
> Rounter
>  2222</input2>
> ]
> DEBUG - MyBean                         - ## In Message: <?xml version="1.0"
> enco
> ding="UTF-8"?><input2>Tesing Content Based Rounter 2222</input2>
> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
> Rounter
> 2222</input2>
> coreMessage from Service1<input2>Tesing Content Based Rounter 2222</input2>
> DEBUG - MyBean                         - ## Out Message:
> <response1><input2>Tesi
> ng Content Based Rounter 2222</input2></response1>
> 11111111
> ## Out Message: <response1><input2>Tesing Content Based Rounter
> 2222</input2></r
> esponse1>
> after processXml11111<response1><input2>Tesing Content Based Rounter
> 2222</input
> 2></response1>
> set contentStringSource[<response1><input2>Tesing Content Based Rounter
> 2222</in
> put2></response1>]
> before sending
> after sending
> [Fatal Error] :-1:-1: Premature end of file.
> [Fatal Error] :-1:-1: Premature end of file.
> ERROR - EIPComponent                   - Error processing exchange InOnly[
>  id: ID:10.102.11.29-11f4a35617b-11:4
>  status: Active
>  role: provider
>  service: {http://test}MyStaticRoutingSlip1Service
>  endpoint: myStaticRoutingSlip1Su
>  operation: {http://test}onMessageExchange
>  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
> file.
> ]
> org.xml.sax.SAXParseException: Premature end of file.
>        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStrea
> m(SourceTransformer.java:268)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTr
> ansformer.java:175)
>        at
> org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTran
> sformer.java:311)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.getDOMNode(Content
> Enricher.java:247)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.combineToDOMDocume
> nt(ContentEnricher.java:213)
>        at
> org.apache.servicemix.eip.patterns.ContentEnricher.process(ContentEnr
> icher.java:168)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi
> feCycle.java:540)
>        at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async
> BaseLifeCycle.java:492)
>        at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
> Cycle.java:46)
>        at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
> d(DeliveryChannelImpl.java:610)
>        at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
> w.java:172)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
> ava:167)
>        at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
> a:134)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
>        at java.lang.Thread.run(Thread.java:595)
>
>
>
>
> Gert Vanthienen wrote:
>>
>> Vasumathi,
>>
>> Could you try enabling DEBUG logging for the container itself as
>> explained in
>> http://servicemix.apache.org/how-do-i-change-the-logging.html?
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/2/5 Vasumathi, Rajamarthandan
>> <Ra...@caremark.com>:
>>> Hi Gert Vanthienen
>>>
>>> Thanks for your reply. I had debug statements, just removed them before
>>> submitting the code to forum. Please find the bean method with debug
>>> statements and the console displaying/printing the statement values.
>>>
>>> It is executing onMessageExchange successfully while the control
>>> returning back from onMessageExchange method to router the router occurs
>>> (I guess).
>>>
>>> Please help me to solve this issue. I am struggling for the past four
>>> days with the same issue.
>>>
>>> Bean method
>>> -----------
>>>
>>>        public void onMessageExchange(MessageExchange exchange)
>>>                        throws MessagingException {
>>>
>>>                if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>                        NormalizedMessage normalizedMessage =null;
>>>                        NormalizedMessage normalizedMessageOut=null;
>>>                        normalizedMessage = exchange.getMessage("in");
>>>                        normalizedMessageOut= exchange.createMessage();
>>>                        String outMessage =
>>> processXml(normalizedMessage);
>>>                        System.out.println("after processXml11111" +
>>> outMessage);
>>>                        normalizedMessageOut.setContent(new
>>> StringSource(outMessage));
>>>                        System.out.println("set
>>> content"+normalizedMessageOut.getContent().toString());
>>>                        exchange.setMessage(normalizedMessageOut,
>>> "out");
>>>                        exchange.setStatus(ExchangeStatus.ACTIVE);
>>>                        System.out.println("before sending");
>>>                        channel.send(exchange);
>>>                        System.out.println("after sending");
>>>                }
>>>        }
>>>        private String processXml(NormalizedMessage normalizedMessage)
>>> throws MessagingException {
>>>   SourceTransformer sourceTransformer = new SourceTransformer();
>>>   String inMessage = "";
>>>   try {
>>>   inMessage = sourceTransformer.contentToString(normalizedMessage);
>>>   } catch (Exception e) {
>>>   throw new MessagingException(e);
>>>   }
>>>   System.out.println("input"+inMessage);
>>>   System.out.println("coreMessage from Service1"+coreMessage);
>>>   String outMessage ="<response1>" + coreMessage + "</response1>";
>>>   System.out.println("11111111");
>>>   System.out.println("## Out Message: " + outMessage);
>>>   return outMessage;
>>>   }
>>> }
>>>
>>> Server console output
>>> ---------------------
>>>
>>> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
>>> Rounter
>>> 2222</input2>
>>> coreMessage from Service1<input2>Tesing Content Based Rounter
>>> 2222</input2>
>>> 11111111
>>> ## Out Message: <response1><input2>Tesing Content Based Rounter
>>> 2222</input2></r
>>> esponse1>
>>> after processXml11111<response1><input2>Tesing Content Based Rounter
>>> 2222</input
>>> 2></response1>
>>> set contentStringSource[<response1><input2>Tesing Content Based Rounter
>>> 2222</in
>>> put2></response1>]
>>> before sending
>>> after sending
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> ERROR - EIPComponent                   - Error processing exchange
>>> InOnly[
>>>  id: ID:10.102.11.29-11f46231bc3-11:2
>>>  status: Active
>>>  role: provider
>>>  service: {http://test}MyStaticRoutingSlip1Service
>>>  endpoint: myStaticRoutingSlip1Su
>>>  operation: {http://test}onMessage
>>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
>>> file.
>>> ]
>>> org.xml.sax.SAXParseException: Premature end of file.
>>>
>>> Please help me to solve this issue. I am struggling for the past four
>>> days with the same issue.
>>>
>>> Thanks
>>> Vasumathi
>>>
>>>
>>> -----Original Message-----
>>> From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com]
>>> Sent: Thursday, February 05, 2009 7:46 AM
>>> To: users@servicemix.apache.org
>>> Subject: Re: Unable to display: org.xml.sax.SAXParseException: Premature
>>> end of file
>>>
>>> Vasumathi,
>>>
>>> This is probably caused by something consuming a StreamSource or
>>> StaxSource before your service touches it.  To make sure that this is
>>> the cause, could you try enabling DEBUG logging because this should
>>> 'solve' the issue then?
>>>
>>> Once we are sure that this is the cause of the problem, we should try to
>>> modify the bean method so that it converts the source into a re-readable
>>> source type before actually processing it.  Our MessageUtil class has a
>>> method named enableContentRereadability() that was created exactly for
>>> this purpose.
>>>
>>> Regards,
>>>
>>> Gert Vanthienen
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>> Blog: http://gertvanthienen.blogspot.com/
>>>
>>>
>>>
>>> 2009/2/5 Vasumathi, Rajamarthandan
>>> <Ra...@caremark.com>:
>>>> Hi All,
>>>>
>>>> I am new to service Mix and JBI. I am getting the below error while
>>>> executing a content enricher EIP. The service Mix version I am using
>>>> is 3.3.1.3. I am using In-Only exchange pattern.
>>>>
>>>>  Overall flow goes like this
>>>>
>>>> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a
>>>> Single Service Unit)
>>>>
>>>> Error I am facing
>>>>
>>>> [Fatal Error] :-1:-1: Premature end of file.
>>>> [Fatal Error] :-1:-1: Premature end of file.
>>>> ERROR - EIPComponent                   - Error processing exchange
>>>> InOnly[
>>>>  id: ID:10.102.11.29-11f46231bc3-11:0
>>>>  status: Active
>>>>  role: provider
>>>>  service: {http://test}MyStaticRoutingSlip1Service
>>>>  endpoint: myStaticRoutingSlip1Su
>>>>  operation: {http://test}onMessage
>>>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end
>>>> of file ]
>>>> org.xml.sax.SAXParseException: Premature end of file.
>>>>
>>>> Please find the code
>>>>
>>>> JMS BC
>>>> -------
>>>>
>>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>>> xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
>>>>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>>>>  targetService="test:MyStaticRoutingSlip1Service"
>>>> targetEndpoint="myStaticRoutingSlip1Su"
>>>>  role="consumer" destinationStyle="queue"
>>>> jmsProviderDestinationName="myJmsQueueTest"
>>>>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>>>> defaultOperation="test:onMessage"
>>>>  connectionFactory="#connectionFactory">
>>>>  </jms:endpoint>
>>>>  <amq:connectionFactory id="connectionFactory"
>>>>  brokerURL="tcp://localhost:61616" />
>>>> </beans>
>>>>
>>>> Cotent Enricher EIP
>>>> -------------------
>>>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
>>>> xmlns:test="http://test">
>>>> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
>>>> endpoint="myStaticRoutingSlip1Su">
>>>>  <eip:enricherTarget>
>>>>    <eip:exchange-target service="test:MyS1PojoService"/>
>>>> </eip:enricherTarget>
>>>>
>>>> </eip:content-enricher>
>>>> </beans>
>>>>
>>>> Service Unit  - Pojo code
>>>> --------------------------
>>>>
>>>> public void onMessageExchange(MessageExchange exchange) {  if
>>>> (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>>
>>>>   NormalizedMessage normalizedMessage =null;
>>>>   NormalizedMessage normalizedMessageOut=null;
>>>>   normalizedMessage = exchange.getMessage("in");
>>>>   normalizedMessageOut= exchange.createMessage();
>>>>   String outMessage = processXml(normalizedMessage);
>>>>   normalizedMessageOut.setContent(new StringSource(outMessage));
>>>>   exchange.setMessage(normalizedMessageOut, "out");
>>>>   exchange.setStatus(ExchangeStatus.ACTIVE);
>>>>   channel.send(exchange);
>>>>
>>>>  }
>>>>  }
>>>>
>>>> I am struggling for the past four days with this issue. Please help me
>>>
>>>> to solve the issue.
>>>>
>>>> Thanks
>>>> Vasumathi
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>> -----
>> ---
>> Gert Vanthienen
>> http://gertvanthienen.blogspot.com
>>
>
> --
> View this message in context: http://www.nabble.com/in%3A-Unable-to-display%3A-org.xml.sax.SAXParseException%3A-Premature-end-of-file-tp21850744p21867376.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by vasumathi <Ra...@caremark.com>.
Hi Gert Vanthienen,

As you advised, I have changed the DEBUG logging of the container. Please
find the console log. The control passes MyBean successfully but erroring
out in EIP component.

It leads to another doubt. When the control reaches MyBean(SU), the exchange
pattern is Inout but in router it is InOnly. I have coded the default
message pattern as In-Only only. 

Please clarify the same and let me know if you have any clue to solve the
issue.

Thanks
Vasumathi


DEBUG - MyBean                         - ## Received exchange with status
ACTIVE
: InOut[
  id: ID:10.102.11.29-11f4a35617b-7:4
  status: Active
  role: provider
  service: {http://test}MyS1PojoService
  endpoint: myS1PojoSu
  in: <?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
Rounter
 2222</input2>
]
DEBUG - MyBean                         - ## In Message: <?xml version="1.0"
enco
ding="UTF-8"?><input2>Tesing Content Based Rounter 2222</input2>
input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
Rounter
2222</input2>
coreMessage from Service1<input2>Tesing Content Based Rounter 2222</input2>
DEBUG - MyBean                         - ## Out Message:
<response1><input2>Tesi
ng Content Based Rounter 2222</input2></response1>
11111111
## Out Message: <response1><input2>Tesing Content Based Rounter
2222</input2></r
esponse1>
after processXml11111<response1><input2>Tesing Content Based Rounter
2222</input
2></response1>
set contentStringSource[<response1><input2>Tesing Content Based Rounter
2222</in
put2></response1>]
before sending
after sending
[Fatal Error] :-1:-1: Premature end of file.
[Fatal Error] :-1:-1: Premature end of file.
ERROR - EIPComponent                   - Error processing exchange InOnly[
  id: ID:10.102.11.29-11f4a35617b-11:4
  status: Active
  role: provider
  service: {http://test}MyStaticRoutingSlip1Service
  endpoint: myStaticRoutingSlip1Su
  operation: {http://test}onMessageExchange
  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
file.
]
org.xml.sax.SAXParseException: Premature end of file.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSourceFromStrea
m(SourceTransformer.java:268)
        at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMSource(SourceTr
ansformer.java:175)
        at
org.apache.servicemix.jbi.jaxp.SourceTransformer.toDOMNode(SourceTran
sformer.java:311)
        at
org.apache.servicemix.eip.patterns.ContentEnricher.getDOMNode(Content
Enricher.java:247)
        at
org.apache.servicemix.eip.patterns.ContentEnricher.combineToDOMDocume
nt(ContentEnricher.java:213)
        at
org.apache.servicemix.eip.patterns.ContentEnricher.process(ContentEnr
icher.java:168)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi
feCycle.java:540)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async
BaseLifeCycle.java:492)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife
Cycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun
d(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo
w.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j
ava:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav
a:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595)




Gert Vanthienen wrote:
> 
> Vasumathi,
> 
> Could you try enabling DEBUG logging for the container itself as
> explained in
> http://servicemix.apache.org/how-do-i-change-the-logging.html?
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/2/5 Vasumathi, Rajamarthandan
> <Ra...@caremark.com>:
>> Hi Gert Vanthienen
>>
>> Thanks for your reply. I had debug statements, just removed them before
>> submitting the code to forum. Please find the bean method with debug
>> statements and the console displaying/printing the statement values.
>>
>> It is executing onMessageExchange successfully while the control
>> returning back from onMessageExchange method to router the router occurs
>> (I guess).
>>
>> Please help me to solve this issue. I am struggling for the past four
>> days with the same issue.
>>
>> Bean method
>> -----------
>>
>>        public void onMessageExchange(MessageExchange exchange)
>>                        throws MessagingException {
>>
>>                if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>                        NormalizedMessage normalizedMessage =null;
>>                        NormalizedMessage normalizedMessageOut=null;
>>                        normalizedMessage = exchange.getMessage("in");
>>                        normalizedMessageOut= exchange.createMessage();
>>                        String outMessage =
>> processXml(normalizedMessage);
>>                        System.out.println("after processXml11111" +
>> outMessage);
>>                        normalizedMessageOut.setContent(new
>> StringSource(outMessage));
>>                        System.out.println("set
>> content"+normalizedMessageOut.getContent().toString());
>>                        exchange.setMessage(normalizedMessageOut,
>> "out");
>>                        exchange.setStatus(ExchangeStatus.ACTIVE);
>>                        System.out.println("before sending");
>>                        channel.send(exchange);
>>                        System.out.println("after sending");
>>                }
>>        }
>>        private String processXml(NormalizedMessage normalizedMessage)
>> throws MessagingException {
>>   SourceTransformer sourceTransformer = new SourceTransformer();
>>   String inMessage = "";
>>   try {
>>   inMessage = sourceTransformer.contentToString(normalizedMessage);
>>   } catch (Exception e) {
>>   throw new MessagingException(e);
>>   }
>>   System.out.println("input"+inMessage);
>>   System.out.println("coreMessage from Service1"+coreMessage);
>>   String outMessage ="<response1>" + coreMessage + "</response1>";
>>   System.out.println("11111111");
>>   System.out.println("## Out Message: " + outMessage);
>>   return outMessage;
>>   }
>> }
>>
>> Server console output
>> ---------------------
>>
>> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
>> Rounter
>> 2222</input2>
>> coreMessage from Service1<input2>Tesing Content Based Rounter
>> 2222</input2>
>> 11111111
>> ## Out Message: <response1><input2>Tesing Content Based Rounter
>> 2222</input2></r
>> esponse1>
>> after processXml11111<response1><input2>Tesing Content Based Rounter
>> 2222</input
>> 2></response1>
>> set contentStringSource[<response1><input2>Tesing Content Based Rounter
>> 2222</in
>> put2></response1>]
>> before sending
>> after sending
>> [Fatal Error] :-1:-1: Premature end of file.
>> [Fatal Error] :-1:-1: Premature end of file.
>> ERROR - EIPComponent                   - Error processing exchange
>> InOnly[
>>  id: ID:10.102.11.29-11f46231bc3-11:2
>>  status: Active
>>  role: provider
>>  service: {http://test}MyStaticRoutingSlip1Service
>>  endpoint: myStaticRoutingSlip1Su
>>  operation: {http://test}onMessage
>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
>> file.
>> ]
>> org.xml.sax.SAXParseException: Premature end of file.
>>
>> Please help me to solve this issue. I am struggling for the past four
>> days with the same issue.
>>
>> Thanks
>> Vasumathi
>>
>>
>> -----Original Message-----
>> From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com]
>> Sent: Thursday, February 05, 2009 7:46 AM
>> To: users@servicemix.apache.org
>> Subject: Re: Unable to display: org.xml.sax.SAXParseException: Premature
>> end of file
>>
>> Vasumathi,
>>
>> This is probably caused by something consuming a StreamSource or
>> StaxSource before your service touches it.  To make sure that this is
>> the cause, could you try enabling DEBUG logging because this should
>> 'solve' the issue then?
>>
>> Once we are sure that this is the cause of the problem, we should try to
>> modify the bean method so that it converts the source into a re-readable
>> source type before actually processing it.  Our MessageUtil class has a
>> method named enableContentRereadability() that was created exactly for
>> this purpose.
>>
>> Regards,
>>
>> Gert Vanthienen
>> ------------------------
>> Open Source SOA: http://fusesource.com
>> Blog: http://gertvanthienen.blogspot.com/
>>
>>
>>
>> 2009/2/5 Vasumathi, Rajamarthandan
>> <Ra...@caremark.com>:
>>> Hi All,
>>>
>>> I am new to service Mix and JBI. I am getting the below error while
>>> executing a content enricher EIP. The service Mix version I am using
>>> is 3.3.1.3. I am using In-Only exchange pattern.
>>>
>>>  Overall flow goes like this
>>>
>>> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a
>>> Single Service Unit)
>>>
>>> Error I am facing
>>>
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> [Fatal Error] :-1:-1: Premature end of file.
>>> ERROR - EIPComponent                   - Error processing exchange
>>> InOnly[
>>>  id: ID:10.102.11.29-11f46231bc3-11:0
>>>  status: Active
>>>  role: provider
>>>  service: {http://test}MyStaticRoutingSlip1Service
>>>  endpoint: myStaticRoutingSlip1Su
>>>  operation: {http://test}onMessage
>>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end
>>> of file ]
>>> org.xml.sax.SAXParseException: Premature end of file.
>>>
>>> Please find the code
>>>
>>> JMS BC
>>> -------
>>>
>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>> xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
>>>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>>>  targetService="test:MyStaticRoutingSlip1Service"
>>> targetEndpoint="myStaticRoutingSlip1Su"
>>>  role="consumer" destinationStyle="queue"
>>> jmsProviderDestinationName="myJmsQueueTest"
>>>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>>> defaultOperation="test:onMessage"
>>>  connectionFactory="#connectionFactory">
>>>  </jms:endpoint>
>>>  <amq:connectionFactory id="connectionFactory"
>>>  brokerURL="tcp://localhost:61616" />
>>> </beans>
>>>
>>> Cotent Enricher EIP
>>> -------------------
>>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
>>> xmlns:test="http://test">
>>> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
>>> endpoint="myStaticRoutingSlip1Su">
>>>  <eip:enricherTarget>
>>>    <eip:exchange-target service="test:MyS1PojoService"/>
>>> </eip:enricherTarget>
>>>
>>> </eip:content-enricher>
>>> </beans>
>>>
>>> Service Unit  - Pojo code
>>> --------------------------
>>>
>>> public void onMessageExchange(MessageExchange exchange) {  if
>>> (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>
>>>   NormalizedMessage normalizedMessage =null;
>>>   NormalizedMessage normalizedMessageOut=null;
>>>   normalizedMessage = exchange.getMessage("in");
>>>   normalizedMessageOut= exchange.createMessage();
>>>   String outMessage = processXml(normalizedMessage);
>>>   normalizedMessageOut.setContent(new StringSource(outMessage));
>>>   exchange.setMessage(normalizedMessageOut, "out");
>>>   exchange.setStatus(ExchangeStatus.ACTIVE);
>>>   channel.send(exchange);
>>>
>>>  }
>>>  }
>>>
>>> I am struggling for the past four days with this issue. Please help me
>>
>>> to solve the issue.
>>>
>>> Thanks
>>> Vasumathi
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://www.nabble.com/in%3A-Unable-to-display%3A-org.xml.sax.SAXParseException%3A-Premature-end-of-file-tp21850744p21867376.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by Gert Vanthienen <ge...@gmail.com>.
Vasumathi,

Could you try enabling DEBUG logging for the container itself as
explained in http://servicemix.apache.org/how-do-i-change-the-logging.html?

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/2/5 Vasumathi, Rajamarthandan <Ra...@caremark.com>:
> Hi Gert Vanthienen
>
> Thanks for your reply. I had debug statements, just removed them before
> submitting the code to forum. Please find the bean method with debug
> statements and the console displaying/printing the statement values.
>
> It is executing onMessageExchange successfully while the control
> returning back from onMessageExchange method to router the router occurs
> (I guess).
>
> Please help me to solve this issue. I am struggling for the past four
> days with the same issue.
>
> Bean method
> -----------
>
>        public void onMessageExchange(MessageExchange exchange)
>                        throws MessagingException {
>
>                if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>                        NormalizedMessage normalizedMessage =null;
>                        NormalizedMessage normalizedMessageOut=null;
>                        normalizedMessage = exchange.getMessage("in");
>                        normalizedMessageOut= exchange.createMessage();
>                        String outMessage =
> processXml(normalizedMessage);
>                        System.out.println("after processXml11111" +
> outMessage);
>                        normalizedMessageOut.setContent(new
> StringSource(outMessage));
>                        System.out.println("set
> content"+normalizedMessageOut.getContent().toString());
>                        exchange.setMessage(normalizedMessageOut,
> "out");
>                        exchange.setStatus(ExchangeStatus.ACTIVE);
>                        System.out.println("before sending");
>                        channel.send(exchange);
>                        System.out.println("after sending");
>                }
>        }
>        private String processXml(NormalizedMessage normalizedMessage)
> throws MessagingException {
>   SourceTransformer sourceTransformer = new SourceTransformer();
>   String inMessage = "";
>   try {
>   inMessage = sourceTransformer.contentToString(normalizedMessage);
>   } catch (Exception e) {
>   throw new MessagingException(e);
>   }
>   System.out.println("input"+inMessage);
>   System.out.println("coreMessage from Service1"+coreMessage);
>   String outMessage ="<response1>" + coreMessage + "</response1>";
>   System.out.println("11111111");
>   System.out.println("## Out Message: " + outMessage);
>   return outMessage;
>   }
> }
>
> Server console output
> ---------------------
>
> input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
> Rounter
> 2222</input2>
> coreMessage from Service1<input2>Tesing Content Based Rounter
> 2222</input2>
> 11111111
> ## Out Message: <response1><input2>Tesing Content Based Rounter
> 2222</input2></r
> esponse1>
> after processXml11111<response1><input2>Tesing Content Based Rounter
> 2222</input
> 2></response1>
> set contentStringSource[<response1><input2>Tesing Content Based Rounter
> 2222</in
> put2></response1>]
> before sending
> after sending
> [Fatal Error] :-1:-1: Premature end of file.
> [Fatal Error] :-1:-1: Premature end of file.
> ERROR - EIPComponent                   - Error processing exchange
> InOnly[
>  id: ID:10.102.11.29-11f46231bc3-11:2
>  status: Active
>  role: provider
>  service: {http://test}MyStaticRoutingSlip1Service
>  endpoint: myStaticRoutingSlip1Su
>  operation: {http://test}onMessage
>  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
> file.
> ]
> org.xml.sax.SAXParseException: Premature end of file.
>
> Please help me to solve this issue. I am struggling for the past four
> days with the same issue.
>
> Thanks
> Vasumathi
>
>
> -----Original Message-----
> From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com]
> Sent: Thursday, February 05, 2009 7:46 AM
> To: users@servicemix.apache.org
> Subject: Re: Unable to display: org.xml.sax.SAXParseException: Premature
> end of file
>
> Vasumathi,
>
> This is probably caused by something consuming a StreamSource or
> StaxSource before your service touches it.  To make sure that this is
> the cause, could you try enabling DEBUG logging because this should
> 'solve' the issue then?
>
> Once we are sure that this is the cause of the problem, we should try to
> modify the bean method so that it converts the source into a re-readable
> source type before actually processing it.  Our MessageUtil class has a
> method named enableContentRereadability() that was created exactly for
> this purpose.
>
> Regards,
>
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
>
>
>
> 2009/2/5 Vasumathi, Rajamarthandan
> <Ra...@caremark.com>:
>> Hi All,
>>
>> I am new to service Mix and JBI. I am getting the below error while
>> executing a content enricher EIP. The service Mix version I am using
>> is 3.3.1.3. I am using In-Only exchange pattern.
>>
>>  Overall flow goes like this
>>
>> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a
>> Single Service Unit)
>>
>> Error I am facing
>>
>> [Fatal Error] :-1:-1: Premature end of file.
>> [Fatal Error] :-1:-1: Premature end of file.
>> ERROR - EIPComponent                   - Error processing exchange
>> InOnly[
>>  id: ID:10.102.11.29-11f46231bc3-11:0
>>  status: Active
>>  role: provider
>>  service: {http://test}MyStaticRoutingSlip1Service
>>  endpoint: myStaticRoutingSlip1Su
>>  operation: {http://test}onMessage
>>  in: Unable to display: org.xml.sax.SAXParseException: Premature end
>> of file ]
>> org.xml.sax.SAXParseException: Premature end of file.
>>
>> Please find the code
>>
>> JMS BC
>> -------
>>
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>> xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
>>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>>  targetService="test:MyStaticRoutingSlip1Service"
>> targetEndpoint="myStaticRoutingSlip1Su"
>>  role="consumer" destinationStyle="queue"
>> jmsProviderDestinationName="myJmsQueueTest"
>>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>> defaultOperation="test:onMessage"
>>  connectionFactory="#connectionFactory">
>>  </jms:endpoint>
>>  <amq:connectionFactory id="connectionFactory"
>>  brokerURL="tcp://localhost:61616" />
>> </beans>
>>
>> Cotent Enricher EIP
>> -------------------
>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
>> xmlns:test="http://test">
>> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
>> endpoint="myStaticRoutingSlip1Su">
>>  <eip:enricherTarget>
>>    <eip:exchange-target service="test:MyS1PojoService"/>
>> </eip:enricherTarget>
>>
>> </eip:content-enricher>
>> </beans>
>>
>> Service Unit  - Pojo code
>> --------------------------
>>
>> public void onMessageExchange(MessageExchange exchange) {  if
>> (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>
>>   NormalizedMessage normalizedMessage =null;
>>   NormalizedMessage normalizedMessageOut=null;
>>   normalizedMessage = exchange.getMessage("in");
>>   normalizedMessageOut= exchange.createMessage();
>>   String outMessage = processXml(normalizedMessage);
>>   normalizedMessageOut.setContent(new StringSource(outMessage));
>>   exchange.setMessage(normalizedMessageOut, "out");
>>   exchange.setStatus(ExchangeStatus.ACTIVE);
>>   channel.send(exchange);
>>
>>  }
>>  }
>>
>> I am struggling for the past four days with this issue. Please help me
>
>> to solve the issue.
>>
>> Thanks
>> Vasumathi
>>
>>
>>
>>
>>
>>
>>
>>
>

RE: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by "Vasumathi, Rajamarthandan" <Ra...@caremark.com>.
Hi Gert Vanthienen

Thanks for your reply. I had debug statements, just removed them before
submitting the code to forum. Please find the bean method with debug
statements and the console displaying/printing the statement values.

It is executing onMessageExchange successfully while the control
returning back from onMessageExchange method to router the router occurs
(I guess).

Please help me to solve this issue. I am struggling for the past four
days with the same issue.

Bean method
-----------

	public void onMessageExchange(MessageExchange exchange)
			throws MessagingException {

		if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
			NormalizedMessage normalizedMessage =null;
			NormalizedMessage normalizedMessageOut=null;
			normalizedMessage = exchange.getMessage("in");	
			normalizedMessageOut= exchange.createMessage();	
			String outMessage =
processXml(normalizedMessage);
			System.out.println("after processXml11111" +
outMessage);
			normalizedMessageOut.setContent(new
StringSource(outMessage));
			System.out.println("set
content"+normalizedMessageOut.getContent().toString());
			exchange.setMessage(normalizedMessageOut,
"out");
			exchange.setStatus(ExchangeStatus.ACTIVE);
			System.out.println("before sending");
			channel.send(exchange);
			System.out.println("after sending");
		} 
	}
	private String processXml(NormalizedMessage normalizedMessage)
throws MessagingException {
   SourceTransformer sourceTransformer = new SourceTransformer(); 
   String inMessage = "";
   try {   
   inMessage = sourceTransformer.contentToString(normalizedMessage); 
   } catch (Exception e) {  
   throw new MessagingException(e); 
   }  
   System.out.println("input"+inMessage);
   System.out.println("coreMessage from Service1"+coreMessage);
   String outMessage ="<response1>" + coreMessage + "</response1>";  
   System.out.println("11111111");
   System.out.println("## Out Message: " + outMessage);
   return outMessage;
   }
}

Server console output
---------------------

input<?xml version="1.0" encoding="UTF-8"?><input2>Tesing Content Based
Rounter
2222</input2>
coreMessage from Service1<input2>Tesing Content Based Rounter
2222</input2>
11111111
## Out Message: <response1><input2>Tesing Content Based Rounter
2222</input2></r
esponse1>
after processXml11111<response1><input2>Tesing Content Based Rounter
2222</input
2></response1>
set contentStringSource[<response1><input2>Tesing Content Based Rounter
2222</in
put2></response1>]
before sending
after sending
[Fatal Error] :-1:-1: Premature end of file.
[Fatal Error] :-1:-1: Premature end of file.
ERROR - EIPComponent                   - Error processing exchange
InOnly[
  id: ID:10.102.11.29-11f46231bc3-11:2
  status: Active
  role: provider
  service: {http://test}MyStaticRoutingSlip1Service
  endpoint: myStaticRoutingSlip1Su
  operation: {http://test}onMessage
  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
file.
]
org.xml.sax.SAXParseException: Premature end of file.

Please help me to solve this issue. I am struggling for the past four
days with the same issue.

Thanks
Vasumathi
 

-----Original Message-----
From: Gert Vanthienen [mailto:gert.vanthienen@gmail.com] 
Sent: Thursday, February 05, 2009 7:46 AM
To: users@servicemix.apache.org
Subject: Re: Unable to display: org.xml.sax.SAXParseException: Premature
end of file

Vasumathi,

This is probably caused by something consuming a StreamSource or
StaxSource before your service touches it.  To make sure that this is
the cause, could you try enabling DEBUG logging because this should
'solve' the issue then?

Once we are sure that this is the cause of the problem, we should try to
modify the bean method so that it converts the source into a re-readable
source type before actually processing it.  Our MessageUtil class has a
method named enableContentRereadability() that was created exactly for
this purpose.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/2/5 Vasumathi, Rajamarthandan
<Ra...@caremark.com>:
> Hi All,
>
> I am new to service Mix and JBI. I am getting the below error while 
> executing a content enricher EIP. The service Mix version I am using 
> is 3.3.1.3. I am using In-Only exchange pattern.
>
>  Overall flow goes like this
>
> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a 
> Single Service Unit)
>
> Error I am facing
>
> [Fatal Error] :-1:-1: Premature end of file.
> [Fatal Error] :-1:-1: Premature end of file.
> ERROR - EIPComponent                   - Error processing exchange
> InOnly[
>  id: ID:10.102.11.29-11f46231bc3-11:0
>  status: Active
>  role: provider
>  service: {http://test}MyStaticRoutingSlip1Service
>  endpoint: myStaticRoutingSlip1Su
>  operation: {http://test}onMessage
>  in: Unable to display: org.xml.sax.SAXParseException: Premature end 
> of file ]
> org.xml.sax.SAXParseException: Premature end of file.
>
> Please find the code
>
> JMS BC
> -------
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>  targetService="test:MyStaticRoutingSlip1Service"
> targetEndpoint="myStaticRoutingSlip1Su"
>  role="consumer" destinationStyle="queue"
> jmsProviderDestinationName="myJmsQueueTest"
>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
> defaultOperation="test:onMessage"
>  connectionFactory="#connectionFactory">
>  </jms:endpoint>
>  <amq:connectionFactory id="connectionFactory"
>  brokerURL="tcp://localhost:61616" />
> </beans>
>
> Cotent Enricher EIP
> -------------------
> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
> xmlns:test="http://test">
> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
> endpoint="myStaticRoutingSlip1Su">
>  <eip:enricherTarget>
>    <eip:exchange-target service="test:MyS1PojoService"/>  
> </eip:enricherTarget>
>
> </eip:content-enricher>
> </beans>
>
> Service Unit  - Pojo code
> --------------------------
>
> public void onMessageExchange(MessageExchange exchange) {  if 
> (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>
>   NormalizedMessage normalizedMessage =null;
>   NormalizedMessage normalizedMessageOut=null;
>   normalizedMessage = exchange.getMessage("in");
>   normalizedMessageOut= exchange.createMessage();
>   String outMessage = processXml(normalizedMessage);
>   normalizedMessageOut.setContent(new StringSource(outMessage));
>   exchange.setMessage(normalizedMessageOut, "out");
>   exchange.setStatus(ExchangeStatus.ACTIVE);
>   channel.send(exchange);
>
>  }
>  }
>
> I am struggling for the past four days with this issue. Please help me

> to solve the issue.
>
> Thanks
> Vasumathi
>
>
>
>
>
>
>
>

Re: Unable to display: org.xml.sax.SAXParseException: Premature end of file

Posted by Gert Vanthienen <ge...@gmail.com>.
Vasumathi,

This is probably caused by something consuming a StreamSource or
StaxSource before your service touches it.  To make sure that this is
the cause, could you try enabling DEBUG logging because this should
'solve' the issue then?

Once we are sure that this is the cause of the problem, we should try
to modify the bean method so that it converts the source into a
re-readable source type before actually processing it.  Our
MessageUtil class has a method named enableContentRereadability() that
was created exactly for this purpose.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/2/5 Vasumathi, Rajamarthandan <Ra...@caremark.com>:
> Hi All,
>
> I am new to service Mix and JBI. I am getting the below error while
> executing a content enricher EIP. The service Mix version I am using is
> 3.3.1.3. I am using In-Only exchange pattern.
>
>  Overall flow goes like this
>
> JMS BC -> Content Enricher EIP -> Service Unit(Temporarily using a
> Single Service Unit)
>
> Error I am facing
>
> [Fatal Error] :-1:-1: Premature end of file.
> [Fatal Error] :-1:-1: Premature end of file.
> ERROR - EIPComponent                   - Error processing exchange
> InOnly[
>  id: ID:10.102.11.29-11f46231bc3-11:0
>  status: Active
>  role: provider
>  service: {http://test}MyStaticRoutingSlip1Service
>  endpoint: myStaticRoutingSlip1Su
>  operation: {http://test}onMessage
>  in: Unable to display: org.xml.sax.SAXParseException: Premature end of
> file
> ]
> org.xml.sax.SAXParseException: Premature end of file.
>
> Please find the code
>
> JMS BC
> -------
>
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
> xmlns:test="http://test" xmlns:amq="http://activemq.org/config/1.0">
>  <jms:endpoint service="test:MyJmsQueueTest" endpoint="jmsQueue"
>  targetService="test:MyStaticRoutingSlip1Service"
> targetEndpoint="myStaticRoutingSlip1Su"
>  role="consumer" destinationStyle="queue"
> jmsProviderDestinationName="myJmsQueueTest"
>  defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
> defaultOperation="test:onMessage"
>  connectionFactory="#connectionFactory">
>  </jms:endpoint>
>  <amq:connectionFactory id="connectionFactory"
>  brokerURL="tcp://localhost:61616" />
> </beans>
>
> Cotent Enricher EIP
> -------------------
> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
> xmlns:test="http://test">
> <eip:content-enricher service="test:MyStaticRoutingSlip1Service"
> endpoint="myStaticRoutingSlip1Su">
>  <eip:enricherTarget>
>    <eip:exchange-target service="test:MyS1PojoService"/>
>  </eip:enricherTarget>
>
> </eip:content-enricher>
> </beans>
>
> Service Unit  - Pojo code
> --------------------------
>
> public void onMessageExchange(MessageExchange exchange)
> {
>  if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>
>   NormalizedMessage normalizedMessage =null;
>   NormalizedMessage normalizedMessageOut=null;
>   normalizedMessage = exchange.getMessage("in");
>   normalizedMessageOut= exchange.createMessage();
>   String outMessage = processXml(normalizedMessage);
>   normalizedMessageOut.setContent(new StringSource(outMessage));
>   exchange.setMessage(normalizedMessageOut, "out");
>   exchange.setStatus(ExchangeStatus.ACTIVE);
>   channel.send(exchange);
>
>  }
>  }
>
> I am struggling for the past four days with this issue. Please help me
> to solve the issue.
>
> Thanks
> Vasumathi
>
>
>
>
>
>
>
>