Eoghan Glynn wrote:
Thank you for sending this along. Looking at the sample, it does not
appear that anyone is listening on port 9990 (the callback). Am I missing
anything?
Do you mean, an endpoint isn't explicitly created by the client application?
There's no need for this, as it should be created under the hood by the HTTP
conduit as a result of the decoupled response endpoint config.
Also.. the client code sleeps for 30 seconds.
That's just because the demo simulates message loss by throwing every other
outgoing message on the floor (via an interceptor).
The delay just allows the resend logic to kick in.
This may mask the issue.. since my client is short lived (test client).
So.. the client worked and then goes away.
Is your client explicitly shuting down the Bus? This is required so that the
client-side WS-RM layer can gracefully terminate the message sequence
(forcing any pending ACKs to be sent).
No.. it was not. I added shutdown(true) and I still get the stack traces:
14:39:15,986 ERROR [RetransmissionQueueImpl] WS-RM retransmission failed.
java.net.HttpRetryException: cannot retry due to server authentication,
in streaming mode
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1111)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2001)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1980)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1905)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:350)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.serverResend(RetransmissionQueueImpl.java:303)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$500(RetransmissionQueueImpl.java:71)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:546)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:417)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:406)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:500)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
14:39:27,261 INFO [RetransmissionQueueImpl] WS-RM retransmission of
message 1.
14:39:27,261 INFO [ContextUtils] retrieving MAPs from context property
javax.xml.ws.addressing.context.outbound
14:39:27,261 INFO [ContextUtils] current MAPs [MessageId:
urn:uuid:50f22601-c654-4e90-ae95-774d22413ec7, Action:
http://backend.vdc.redhat.com/WCFBackendBean/runActionResponse, To:
http://www.w3.org/2005/08/addressing/anonymous, RelatesTo:
urn:uuid:b8b36b8b-4394-4f88-b8ce-96d5461fee1b]
14:39:27,262 WARN [DeferredConduitSelector] MessageObserver not found
14:39:27,341 ERROR [RetransmissionQueueImpl] WS-RM retransmission failed.
java.net.HttpRetryException: cannot retry due to server authentication,
in streaming mode
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1111)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2001)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1980)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1905)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:350)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.serverResend(RetransmissionQueueImpl.java:303)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$500(RetransmissionQueueImpl.java:71)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:546)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:417)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:406)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:500)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
14:39:27,363 INFO [RetransmissionQueueImpl] WS-RM retransmission of
message 2.
14:39:27,363 INFO [ContextUtils] retrieving MAPs from context property
javax.xml.ws.addressing.context.outbound
14:39:27,364 INFO [ContextUtils] current MAPs [MessageId:
urn:uuid:69103eb0-8977-4409-b5c5-51a3442e83b8, Action:
http://backend.vdc.redhat.com/WCFBackendBean/runActionResponse, To:
http://www.w3.org/2005/08/addressing/anonymous, RelatesTo:
urn:uuid:462a54a5-3a24-4862-adc0-ab830001daad]
14:39:27,364 WARN [DeferredConduitSelector] MessageObserver not found
14:39:27,446 ERROR [RetransmissionQueueImpl] WS-RM retransmission failed.
java.net.HttpRetryException: cannot retry due to server authentication,
in streaming mode
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1111)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2001)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1980)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1905)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:350)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.serverResend(RetransmissionQueueImpl.java:303)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$500(RetransmissionQueueImpl.java:71)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:546)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:417)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:406)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:500)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
14:39:27,823 INFO [RetransmissionQueueImpl] WS-RM retransmission of
message 3.
14:39:27,823 INFO [ContextUtils] retrieving MAPs from context property
javax.xml.ws.addressing.context.outbound
14:39:27,823 INFO [ContextUtils] current MAPs [MessageId:
urn:uuid:6d7c66fa-bdbc-470b-9749-e1d699753232, Action:
http://backend.vdc.redhat.com/WCFBackendBean/runActionResponse, To:
http://www.w3.org/2005/08/addressing/anonymous, RelatesTo:
urn:uuid:a1498026-1f8f-446b-943e-4aa20fe5cc0a]
14:39:27,824 WARN [DeferredConduitSelector] MessageObserver not found
14:39:27,904 ERROR [RetransmissionQueueImpl] WS-RM retransmission failed.
java.net.HttpRetryException: cannot retry due to server authentication,
in streaming mode
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1111)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2001)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1980)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1905)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:350)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.serverResend(RetransmissionQueueImpl.java:303)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$500(RetransmissionQueueImpl.java:71)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:546)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:417)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:406)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:500)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
14:39:27,905 INFO [RetransmissionQueueImpl] WS-RM retransmission of
message 4.
14:39:27,905 INFO [ContextUtils] retrieving MAPs from context property
javax.xml.ws.addressing.context.outbound
14:39:27,905 INFO [ContextUtils] current MAPs [MessageId:
urn:uuid:44e5ec64-3071-478b-90f0-6a92d0efd62a, Action:
http://backend.vdc.redhat.com/WCFBackendBean/runQueryResponse, To:
http://www.w3.org/2005/08/addressing/anonymous, RelatesTo:
urn:uuid:9ac5567f-22a7-43b1-ab1d-32f4b8b50f4b]
14:39:27,905 WARN [DeferredConduitSelector] MessageObserver not found
14:39:27,983 ERROR [RetransmissionQueueImpl] WS-RM retransmission failed.
java.net.HttpRetryException: cannot retry due to server authentication,
in streaming mode
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1111)
at
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2001)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1980)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1905)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.resend(RetransmissionQueueImpl.java:350)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.serverResend(RetransmissionQueueImpl.java:303)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl.access$500(RetransmissionQueueImpl.java:71)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$3.resend(RetransmissionQueueImpl.java:546)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.run(RetransmissionQueueImpl.java:417)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate.initiate(RetransmissionQueueImpl.java:406)
at
org.apache.cxf.ws.rm.soap.RetransmissionQueueImpl$ResendCandidate$1ResendTask.run(RetransmissionQueueImpl.java:500)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)