You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Chris Cool <cc...@demandware.com> on 2015/06/12 16:21:09 UTC

Exception in ReadHeadersInterceptor

[reposting to dev; I had previously posted to users@cxf.apache.org<ma...@cxf.apache.org>]



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<ma...@590970>

Adding interceptor

org.apache.cxf.ws.policy.PolicyVerificationInInterceptor@a2a111<ma...@a2a111> to phase pre-invoke Chain org.apache.cxf.phase.PhaseInterceptorChain@1aee3c4<ma...@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<ma...@527a4a>

Invoking handleMessage on interceptor

org.apache.cxf.interceptor.AttachmentInInterceptor@ec7037<ma...@ec7037>

Invoking handleMessage on interceptor

org.apache.cxf.interceptor.StaxInInterceptor@1585596<ma...@1585596>

Invoking handleMessage on interceptor

org.apache.cxf.frontend.WSDLGetInterceptor@73fc8b<ma...@73fc8b>

Invoking handleMessage on interceptor

org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e<ma...@163985e>

Invoking handleFault on interceptor

org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@163985e<ma...@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.