[ 
https://issues.apache.org/jira/browse/CXF-3249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12982603#action_12982603
 ] 

Sergey Beryozkin commented on CXF-3249:
---------------------------------------

Hi Christian

One minor comment is that having a 500 status does not guarantee that it is a 
valid SOAP fault response, but this probably indicates the server is in a 
pretty bad state.

The other comment is that you may still want to wrap a CXF specific HTTP 
exception into a javax one you spotted on Friday somewhere at the JAX-WS level 
(in-fault interceptor comes to mind), this would make the JAX-WS client code 
portable and it will also let us experiment going forward with different 
approaches. 

For example, the reason the JAX-RS client runtime 'disables' the exceptions at 
the HTTPConduit level is that noisy log messages are being generated and if we 
have a client code catching (JAX-RS) WebApplicationExceptions or checking 
explicit (JAX-RS) Responses and doing some logging of it own then the logging 
becomes too visible... Disabling logging at the transport level is not possible 
because we may have some genuine IO exceptions like timeout, etc, but choosing 
to deal with 400+ statuses at the higher level is a possibility

thanks, Sergey

> When accessing a service that requires auth CXF returns: RuntimeException: 
> Can't find input stream in message
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3249
>                 URL: https://issues.apache.org/jira/browse/CXF-3249
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.3.1
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 2.3.2
>
>
> I try to access a service that requires basic auth. My request does not 
> include credentials. I would expect CXF to return something like
> 401 Authentication required. But it returns the following exception:
> WARNUNG: Interceptor for 
> {http://customerservice.example.com/}CustomerServiceService#{http://customerservice.example.com/}getCustomersByName
>  has thrown exception, unwinding now
> java.lang.RuntimeException: Can't find input stream in message
>       at 
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:116)
>       at 
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>       at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2330)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2192)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2036)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:696)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>       at $Proxy30.getCustomersByName(Unknown Source)
>       at client.JaxWsClient.main(JaxWsClient.java:24)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to