[reposting to dev; I had previously posted to
[email protected]<mailto:[email protected]>]
I am making a Web Service call using CXF 2.7.8 where the response consists of a
302 response-code with header information but no SOAP payload. When the
ReadHeadersInterceptor attempts to parse the response, the following exception
is thrown:
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Premature end of file.
at
com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601)
at
com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.nextTag(XMLStreamReaderImpl.java:1238)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:152)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:62)
I turned on debugging to see the incoming response, and the
LoggingInInterceptor outputs the following:
Inbound Message
----------------------------
ID: 2
Response-Code: 302
Encoding: ISO-8859-1
Content-Type:
Headers: {connection=[Close], Content-Length=[0], Location=[/acme.policy],
Server=[AcmeServer], Set-Cookie=[MRHSHint=deleted; expires=Thu, 01-Jan-1970
00:00:01 GMT; path=/, MRHSession=XXXXX;path=/;secure,
LastMRH_Session=XXXXX;path=/;secure]}
--------------------------------------
I took a look at the ReadHeadersInterceptor source, and it appears to me that
it expects a SOAP message. I may be interpreting the code incorrectly, but
unfortunately, I cannot connect a debugger to the server making the WS call, so
I can't interact with it.
I am not sure if this is an issue in ReadHeadersInterceptor or if I am not
correctly configuring the HTTPConduit to handle redirects. I am calling
HTTPClientPolicy.setAutoRedirect(true) in my code.
>From the debugging message I see, I think the PolicyInInterceptor is called
>and the message is handled and then eventually passed to the
ReadHeadersInterceptor:
Invoking handleMessage on interceptor
org.apache.cxf.ws.policy.PolicyInInterceptor@590970<mailto:org.apache.cxf.ws.policy.PolicyInInterceptor@590970>
Adding interceptor
org.apache.cxf.ws.policy.PolicyVerificationInInterceptor@a2a111<mailto:org.apache.cxf.ws.policy.PolicyVerificationInInterceptor@a2a111>
to phase pre-invoke Chain
org.apache.cxf.phase.PhaseInterceptorChain@1aee3c4<mailto:org.apache.cxf.phase.PhaseInterceptorChain@1aee3c4>
was modified.
Current flow:
receive [PolicyInInterceptor, LoggingInInterceptor, AttachmentInInterceptor]
post-stream [StaxInInterceptor]
read [WSDLGetInterceptor, ReadHeadersInterceptor, SoapActionInInterceptor,
StartBodyInterceptor]
pre-protocol [MustUnderstandInterceptor]
post-protocol [CheckFaultInterceptor, JAXBAttachmentSchemaValidationHack]
unmarshal [DocLiteralInInterceptor, SoapHeaderInterceptor]
post-logical [WrapperClassInInterceptor]
pre-invoke [SwAInInterceptor, HolderInInterceptor,
PolicyVerificationInInterceptor] Invoking handleMessage on interceptor
org.apache.cxf.interceptor.LoggingInInterceptor@527a4a<mailto:org.apache.cxf.interceptor.LoggingInInterceptor@527a4a>
Invoking handleMessage on interceptor
org.apache.cxf.interceptor.AttachmentInInterceptor@ec7037<mailto:org.apache.cxf.interceptor.AttachmentInInterceptor@ec7037>
Invoking handleMessage on interceptor
org.apache.cxf.interceptor.StaxInInterceptor@1585596<mailto:org.apache.cxf.interceptor.StaxInInterceptor@1585596>
Invoking handleMessage on interceptor
org.apache.cxf.frontend.WSDLGetInterceptor@73fc8b<mailto:org.apache.cxf.frontend.WSDLGetInterceptor@73fc8b>
Invoking handleMessage on interceptor
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e<mailto:org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e>
Invoking handleFault on interceptor
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e<mailto:org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e>
Any thoughts on if this is a problem in how I make the WS call or if this could
be a problem in the ReadHeadersInterceptor?
Thanks,
Chris
This e-mail message and all attachments transmitted with it may contain
privileged and/or confidential information intended solely for the use of the
addressee(s). If the reader of this message is not the intended recipient, you
are hereby notified that any reading, dissemination, distribution, copying,
forwarding or other use of this message or its attachments is strictly
prohibited. If you have received this message in error, please notify the
sender immediately and delete this message, all attachments and all copies and
backups thereof.