You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "j.gohel" <ji...@gmail.com> on 2011/09/09 15:35:25 UTC

Apache Camel Using AHC component throws java.io.ioexception - invalid crlf

I am trying to use Apache Camel's AHC component for sending a request to
multiple URLs at the same time and gather the responses. 



To do this on my local machine I have done two things: 

1) Created a unit test to test the camel routes configured in my spring
context file SendXMLReceiveXMLTest-context.xml.

2) Created a servlet ReceiveXMLSendXMLServlet.java and deployed it on my
local Apache Tomcat 6.0.32 server.
   This servlet does the following:
        

	
a) Receive an XML 
	
b) The XML is unmarshalled into a POJO(VehiclesList.java) using JAXB 
	
c) The POJO data is inspected and a new POJO(VehiclesAvailability.java) is
created containing the result data.
	
d) The POJO VehiclesAvailability.java is then marshalled back to XML and
this XML is sent via response. 
       



When I execute the unit test using I encounter a difference, as can be seen
below, between the output emitted by test 
method testSendXMLReceiveXML() and testAsyncHttpRequestsToMultipleURLs().



==============================mvn install ouput 


	.........
	.........
	################# testSendXMLReceiveXML ##############

	--------------OUTPUT STARTS----------------------
	<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
	
	    
		Toyota
		Camry
		1615.7
	    
	
	--------------OUTPUT ENDS----------------------

	09-Sep-2011 16:59:46 308

	################# testAsyncHttpRequestsToMultipleURLs : LocalHost
##############

	--------------OUTPUT STARTS----------------------
	<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
	

	--------------OUTPUT ENDS----------------------
	09-Sep-2011 16:59:46 394

	################# testAsyncHttpRequestsToMultipleURLs : Google
##############

	Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.615 sec
	Running com.poc.apache.camel.message_processing.AppTest
	Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
	.........
	.........



Stack Trace for reference:

	Some exception occured while unmarshalling
	javax.xml.bind.UnmarshalException
	 - with linked exception:
	[java.io.IOException: Invalid CRLF]
		at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:203)
		at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
		at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
		at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184)
		at
com.poc.xml.ReceiveXMLSendXMLServlet.getAvailableVehiclesFromVehiclesRequest(ReceiveXMLSendXMLServlet.java:62)
		at
com.poc.xml.ReceiveXMLSendXMLServlet.doGet(ReceiveXMLSendXMLServlet.java:38)
		at
com.poc.xml.ReceiveXMLSendXMLServlet.doPost(ReceiveXMLSendXMLServlet.java:31)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
		at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
		at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
		at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
		at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
		at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
		at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
		at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
		at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
		at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
		at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
		at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
		at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
		at java.lang.Thread.run(Thread.java:662)
	Caused by: java.io.IOException: Invalid CRLF
		at
org.apache.coyote.http11.filters.ChunkedInputFilter.parseCRLF(ChunkedInputFilter.java:362)
		at
org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:186)
		at
org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)
		at org.apache.coyote.Request.doRead(Request.java:428)
		at
org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
		at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:370)
		at
org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317)
		at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)
		at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:2932)
		at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:704)
		at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:186)
		at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:772)
		at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
		at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
		at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
		at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
		at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
		... 20 more




On inspecting the logs on the server in case of test method
/testAsyncHttpRequestsToMultipleURLs()/ the servlet is unable to unmarshal
the XML from request input stream and shows the error: 

*Caused by: java.io.IOException: Invalid CRLF* 
 


I am unable to resolve this.Can anybody please help me on why this is
happening only in case of test method
/testAsyncHttpRequestsToMultipleURLs()/ and the feature works perfectly in
case of test method  /testSendXMLReceiveXML()/.



http://camel.465427.n5.nabble.com/file/n4786393/SourceCode.zip
SourceCode.zip  


P.S.: I have attached the source code for the files mentioned about above in
SourceCode.zip. 


Thanks,
Jignesh

--
View this message in context: http://camel.465427.n5.nabble.com/Apache-Camel-Using-AHC-component-throws-java-io-ioexception-invalid-crlf-tp4786393p4786393.html
Sent from the Camel - Users mailing list archive at Nabble.com.