Premature end of file using JAXB and Unmarshaller. The xml fromt he response looks valid to me
jaxb, xml-parsing
Solution
You are getting the error because the `InputStream` has been advanced to the end during the output. Assuming the buffer in your `BufferedReader` is large enough to contain the whole XML document you can reset it after outputting and then unmarshal that.
Problem
I don't know what to do anymore. Everything seems correct; input/output. I generate xml file and send to some service to validate. The response is: ``` 11:10:34,922 INFO [STDOUT] printing out the input stream <?xml version="1.0" encoding="UTF-8" standalone="yes"?><Response> <Method name="XML/Release/New" time="2013-04-23T15:10:35.1446238Z"> <ResponseStatus>100</ResponseStatus> </Method> </Response> finished printing out the input stream 11:10:34,922 INFO [STDOUT] got the unmarshaller 11:10:34,925 ERROR [PRNDataAccessUtil] Caught an error: javax.xml.bind.UnmarshalException - with linked exception: [org.xml.sax.SAXParseException: Premature end of file.] : null ``` The code: ``` try { out = connection.getOutputStream(); ByteArrayOutputStream bos = PRNPostNewsReleaseUtil.createNewsReleaseXml(newsRelease); bos.writeTo(out); JAXBContext context = JAXBContext.newInstance(Response.class.getPackage().getName()); in = connection.getInputStream(); BufferedReader inp = new BufferedReader(new InputStreamReader(in)); System.out.println("printing out the input stream"); String line; while((line = inp.readLine()) != null) { System.out.println(line); } System.out.println("finished printing out the input stream"); Unmarshaller unmarshaller = context.createUnmarshaller(); response = (Response) unmarshaller.unmarshal(in); } catch (Exception ex) { log.error("Caught an error: " + ex + " : " + ex.getMessage()); return null; } finally { if (null != in) connection.disconnect(); } ```