|
From: David H. <dav...@gm...> - 2010-08-05 15:28:38
|
I am stumped by this one and would appreciate any help. I am having trouble
parsing the response body back into a Java object.
The relevant piece of code looks like this:
ClientRequest request = new ClientRequest(sdURL);
request.body("application/xml", xml);
try {
ClientResponse<SdErrorMessageXml> response = request.post();
if( response.getResponseStatus() != Response.Status.NO_CONTENT )
{
System.out.println("service returned a
'"+response.getResponseStatus()+"' response");
SdErrorMessageXml error =
response.getEntity(SdErrorMessageXml.class);
System.out.println("service desk error: "+error.getText());
}
} catch (Exception e) {
e.printStackTrace();
}
The SdErrorMessageXml was generated from and XSD using xjc.
When I attempt to use the getEntity() method, I get the following:
service returned a 'Not Modified' response
org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException:
javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.IOException: Stream closed]
at
org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.readFrom(AbstractJAXBProvider.java:86)
at
org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:105)
at
org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.read(GZIPDecodingInterceptor.java:46)
at
org.jboss.resteasy.core.interception.MessageBodyReaderContextImpl.proceed(MessageBodyReaderContextImpl.java:108)
at
org.jboss.resteasy.core.messagebody.ReaderUtility.doRead(ReaderUtility.java:111)
at
org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:246)
at
org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:210)
at
org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:183)
at
org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:177)
at com.dhc.RestTest.main(RestTest.java:33)
Caused by: javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.IOException: Stream closed]
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:213)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:105)
at
org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.readFrom(AbstractJAXBProvider.java:82)
... 9 more
Caused by: java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:134)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at
org.jboss.resteasy.client.core.SelfExpandingBufferredInputStream.read(SelfExpandingBufferredInputStream.java:48)
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.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
... 13 more
The httpclient wire reports:
[DEBUG]org.apache.commons.httpclient.Wire:wire(Wire.java:70): << "HTTP/1.1
304 Not Modified[\r][\n]"
[DEBUG]org.apache.commons.httpclient.Wire:wire(Wire.java:70): << "Server:
Apache-Coyote/1.1[\r][\n]"
[DEBUG]org.apache.commons.httpclient.Wire:wire(Wire.java:70): << "ETag:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><sd-error-message-xml
text="No Person found with search code containing:
"9999999999""/>[\r][\n]"
[DEBUG]org.apache.commons.httpclient.Wire:wire(Wire.java:70): << "Date: Thu,
05 Aug 2010 11:20:32 GMT[\r][\n]"
[DEBUG]org.apache.commons.httpclient.Wire:wire(Wire.java:70): << "[\r][\n]"
Resteasy 1.2.1, jaxrs 1.2.1, jaxb-2.1
I have tried a number of ideas but none of them have worked out.
If you have any suggestions, I would be grateful if you sent them to me.
Thanks
-david-
|