cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Poltavtsev (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CXF-5434) IllegalStateException calling Oneway method using JMS and WSA
Date Mon, 28 Apr 2014 07:59:15 GMT

    [ 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)

Mime
View raw message