gnodet wrote:
> 
> The way is to send a command to the NotificationBroker http endpoint, but
> specifying the wsa:To header.
> This way, the http BC will send the request to the subscription manager
> endpoint instead of the notification broker endpoint.
> 


Thanks a lot. I didn't know that you could send any WS-Addressing-compliant
message to any HTTP consumer endpoint and have it correctly dispatched. The
SOAPHelper class opened my eyes. Now unsubscribing work fine.

There's one more issue, I think you could be interested in this one. The
subscription is destroyed and client is sent a correct Unsubscribe response.
Unfortunately an exception is logged as a side effect. It looks as if SMX is
trying to access the destroyed endpoint.

ERROR - WSNComponent                   - Error processing exchange InOut[
  id: ID:10.136.180.172-116c374555f-13:5
  status: Done
  role: provider
  service: {http://servicemix.org/wsnotification}Subscription
  endpoint: ID-S206035J4463581-1942-1197280088510-5-1
  operation: {http://docs.oasis-open.org/wsn/bw-2}Unsubscribe
  in: <?xml version="1.0" encoding="UTF-8"?>
  out: <?xml version="1.0" encoding="UTF-8"?><ns4:UnsubscribeResponse
xmlns:ns4="http://docs.oasis-open.org/wsn/b-2";
xmlns:ns2="http://www.w3.org/2005/08/addres
sing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2";
xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"/>
]
java.lang.IllegalStateException: Endpoint not found:
{http://servicemix.org/wsnotification}Subscription:ID-S206035J4463581-1942-1197280088510-5-1
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:482)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
ERROR - WSNComponent                   - Error setting exchange status to
ERROR
javax.jbi.messaging.MessagingException: illegal call to send / sendSync
        at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:614)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:385)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:431)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
-- 
View this message in context: 
http://www.nabble.com/WSN2005---SOAP---a-full-featured-external-WSN-client-tp13764611s12049p14250263.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to