You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Aki Yoshida (JIRA)" <ji...@apache.org> on 2013/10/21 14:22:47 UTC

[jira] [Commented] (CXF-5318) "stream is closed" error when enabling LoggingInInterceptor on JaxWSClient

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

Aki Yoshida commented on CXF-5318:
----------------------------------

isn't the error indicating that the server is not returning all the response data and because of that, the logging interceptor not being able to read the response data?

or do you have this issue only when the logging interceptor is used?


> "stream is closed" error when enabling LoggingInInterceptor on JaxWSClient
> --------------------------------------------------------------------------
>
>                 Key: CXF-5318
>                 URL: https://issues.apache.org/jira/browse/CXF-5318
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.7.6
>            Reporter: Andrew Vella
>
> I'm having a weird issue and cannot seem to get the bottom of it. Basically need to log the soap XML being sent to a webservice and received (consumer). I believe the correct approach to this is to use the out of the box interceptors provided by Apache. These work fine however we have a particular case where a method accepts a large amount of parameters/objects and returns a large amount of parameters/objects which would obviously create a large soap request/response xml. The soap request/response are always being printed correctly however the below error is being thrown:
> Application configuration
> Spring config:
>     <jaxws:client id="serviceClient"
>                   serviceClass="com.services.stubs.ServiceAPI"
>                   address="${service.url}">
>         <jaxws:inInterceptors>
>             <ref bean="incomingInterceptor"/>
>         </jaxws:inInterceptors>
>         <jaxws:outInterceptors>
>             <ref bean="outgoingInterceptor"/>
>         </jaxws:outInterceptors>
>     </jaxws:client>
> My Interceptor classes:
> public class OutLoggingInterceptor extends LoggingOutInterceptor
> {
>     public OutLoggingInterceptor()
>     {
>         super(Phase.PRE_STREAM);
>     }
> }
> public class InLoggingInterceptor extends LoggingInInterceptor
> {
>     public InLoggingInterceptor()
>     {
>         super(Phase.RECEIVE);
>     }
> }
> Error being thrown:
> org.apache.cxf.interceptor.Fault: stream is closed
> 	at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:167) ~[cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:78) ~[cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:811) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1590) [cxf-rt-transports-http-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1486) [cxf-rt-transports-http-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1305) [cxf-rt-transports-http-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:50) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:223) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:623) [cxf-rt-transports-http-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:541) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) [cxf-api-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-2.7.6.jar:2.7.6]
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) [cxf-rt-frontend-jaxws-2.7.6.jar:2.7.6]
> Not sure if this is the correct place to post this so my apologies in advance.



--
This message was sent by Atlassian JIRA
(v6.1#6144)