You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Andrey Poltavtsev (JIRA)" <ji...@apache.org> on 2014/04/28 09:59:15 UTC

[jira] [Comment Edited] (CXF-5434) IllegalStateException calling Oneway method using JMS and WSA

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

Andrey Poltavtsev edited comment on CXF-5434 at 4/28/14 7:58 AM:
-----------------------------------------------------------------

Hello All,

I have verified this issue (with document binding style) in cxf-2.7.11 . I see that oneway request is successfully delivered to service side using JMS transport and incoming message is delivered in message handler correctly (there is no "IllegalStateException" anymore). So, original problem is solved, but I see that service intiates sending of response to "none" destination and this response is processed by set of outgoing interceptors (we can also see outgoing message in logs), but sending of response is not performed due to update for org.apache.cxf.ws.addressing.impl.InternalContextUtils:

сxf 2.7.8:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            Bus bus = inMessage.getExchange().get(Bus.class);
            ....

cxf 2.7.11:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            if (ContextUtils.isNoneAddress(reference)) {
                return null;
            }
            Bus bus = inMessage.getExchange().get(Bus.class);
            ...



was (Author: apoltavtsev):
Hello All,

I have verified this issue (with document binding style) in cxf-2.7.11 . I see that oneway request is successfully delivered to service side using JMS transport and incoming message is delivered in message handler correctly (there is no "IllegalStateException" anymore). So, original problem is solved, but I see that provider intiates sending of response to "none" destination and this response is processed by set of outgoing interceptors (we can also see outgoing message in logs), but sending of response is not performed due to update for org.apache.cxf.ws.addressing.impl.InternalContextUtils:

сxf 2.7.8:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            Bus bus = inMessage.getExchange().get(Bus.class);
            ....

cxf 2.7.11:

        public Conduit getBackChannel(Message inMessage,
                                      Message partialResponse,
                                      EndpointReferenceType address)
            throws IOException {
            if (ContextUtils.isNoneAddress(reference)) {
                return null;
            }
            Bus bus = inMessage.getExchange().get(Bus.class);
            ...


> IllegalStateException calling Oneway method using JMS and WSA
> -------------------------------------------------------------
>
>                 Key: CXF-5434
>                 URL: https://issues.apache.org/jira/browse/CXF-5434
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.7.5, 2.7.7
>            Reporter: Wouter Dhaeze
>            Assignee: Daniel Kulp
>             Fix For: 2.6.12, 2.7.9
>
>         Attachments: CXFTestServer.zip, 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 http://www.w3.org/2005/08/addressing/none: 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(HTTPConduit.java:1338)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1327)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:622)
> 	at org.apache.cxf.interceptor.OneWayProcessorInterceptor.handleMessage(OneWayProcessorInterceptor.java:126)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> 	at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:235)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:536)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:496)
> 	at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
> 	at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1059)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1051)
> 	at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:948)
> 	at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.IllegalStateException: Already connected
> 	at java.net.HttpURLConnection.setFixedLengthStreamingMode(Unknown Source)
> 	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setFixedLengthStreamingMode(URLConnectionHTTPConduit.java:272)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.thresholdNotReached(HTTPConduit.java:1085)
> 	at org.apache.cxf.io.AbstractThresholdOutputStream.close(AbstractThresholdOutputStream.java:99)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1301)
> 	... 15 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)