I'm getting the following error with my CXF client: Caused by: java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:538) at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:582) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:669) at java.io.FilterInputStream.read(FilterInputStream.java:116) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2672) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) at java.io.InputStreamReader.read(InputStreamReader.java:167) at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.skipString(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.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
This occurs while attempting to unmarshal the JAXB response. What's strange is this is only occurring in one environment, which unfortunately is production. And it is only occurring with responses around 8K, which appears to be the threshold where CXF starts chunking the response. The basic architecture is as follows: The client makes a REST request to server 1, which makes a similar REST request to server 2. Then, server 1 hands the Response object from server 2 back to the client, without unmarshalling/remarshalling. What I see when analyzing the http traffic is a correct chunked response from server 2, but the response from server 1 a bit malformed. It says it's chunked (in header) but it's not and contains the entire response. I've attempted to turn off chunking, with the following: WebClient.getConfig(t).getHttpConduit().getClient().setAllowChunking(false); but I've learned that pertains only to request chunking -- not where the problem is. So, my questions are, is there a method to tell CXF to not chunk the response? Or, is there an obvious problem here that can be resolved in another manner? I am using CXF 2.2.11 (old I know but stuck on it for now). Thanks, Andrew
