Andrew Vella created CXF-5318:
---------------------------------
Summary: "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)