cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wouter Dhaeze (JIRA)" <>
Subject [jira] [Commented] (CXF-5434) IllegalStateException calling Oneway method using JMS and WSA
Date Fri, 06 Dec 2013 09:08:35 GMT


Wouter Dhaeze commented on CXF-5434:

Dear mr. Kulp, thanks for the quick response.

I've attached three files:
1. I attached my eclipse project which you can use to reproduce the problem. 
It defines a oneway endpoint which listens to a queue (activeMQ 5.7.0). 
I'm compiling and running using java7 (u45) and deploying on tomcat 7.0.35. 
I'm using a reference to the default cxf distribution 2.7.8.
It also contains a unit test which creates a cxf client that will publish a message to the
2. A log trace of my server in which the CXF stack is printed as well as the error message
3. I filtered the incoming soap message. It contains a header field with ReplyTo "none" which
is normal I guess since we call a oneway method. 

Please be aware that the method is annotated with "javax.jws.Oneway" and not "import org.apache.cxf.jaxrs.ext.Oneway".
But I'm quite sure this is correct since the latter annotation is for REST services.

If you remove the wsa:addressing feature from the client, the server consumes the message
perfectly. The biggest difference however is the cxf stack. In the failing test there are
a lot more filters that are applied.

> IllegalStateException calling Oneway method using JMS and WSA
> -------------------------------------------------------------
>                 Key: CXF-5434
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.7.5, 2.7.7
>            Reporter: Wouter Dhaeze
>         Attachments:, incoming_soap_message_01.txt, server_logs_01.log
> When a client is calling a oneway method, the endpoint method is never called due to
an IllegalStateException, when the endpoint has WS-Addressing policy enabled and the endpoint
is called through JMS (activeMQ)
> {code}
> java.lang.IllegalStateException: IllegalStateException invoking
Already connected
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
> 	at java.lang.reflect.Constructor.newInstance(Unknown Source)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> 	at org.apache.cxf.transport.AbstractConduit.close(
> 	at org.apache.cxf.transport.http.HTTPConduit.close(
> 	at org.apache.cxf.interceptor.OneWayProcessorInterceptor.handleMessage(
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(
> 	at org.apache.cxf.transport.jms.JMSDestination.onMessage(
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$
> 	at Source)
> Caused by: java.lang.IllegalStateException: Already connected
> 	at Source)
> 	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setFixedLengthStreamingMode(
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.thresholdNotReached(
> 	at
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> 	... 15 more
> {code}

This message was sent by Atlassian JIRA

View raw message