You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Bartosz <Ba...@sabre.com> on 2007/12/06 12:49:43 UTC

Re: WSN2005 & SOAP - a full-featured external WSN client


The problem is that the dynamically created subscriptions does not use
http-bindings. So, I don't understand the last reply. My question was: is
there a way to access the subcription manager endpoint from the outside
using the http binding ? Is there a way to tell SM to create a http binding
for every newly created subcription ?

Regards,
  Bartek



gnodet wrote:
> 
> Yeah, you can access those resources by using a wsa:To soap header and
> specifying the
> endpoint address that you received.  I can't tell you exactly how, but I
> have tested that a long
> time ago and it was working without any problems.
> 
> On Nov 16, 2007 2:34 PM, Bartosz <Ba...@sabre.com> wrote:
> 
>> Last
>> question, is it possible to access the dynamically created WSN entities
>> "from the outside" (from an external client) ? That is, to for example
>> send
>> a SOAP envelope with Unsubscribe message to the SubscriptionManager ?
>> Subscription Manager is created when subscribe is called. The address is
>> sth
>> similar to:
>>
>> http://servicemix.org/wsnotification/Subscription/ID-S206035J4463581-3122-1195219514245-2-0
>> .
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/WSN2005---SOAP---a-full-featured-external-WSN-client-tf4810818s12049.html#a14190921
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: WSN2005 & SOAP - a full-featured external WSN client

Posted by Guillaume Nodet <gn...@gmail.com>.
I suppose the endpoint has been destroyed before letting the exchange come
back.
Could you please raise a JIRA issue ?
I guess the WSN component should handle that case gracefully somehow.

On Dec 10, 2007 11:18 AM, Bartosz <Ba...@sabre.com> wrote:

>
>
>
> 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<http://servicemix.org/wsnotification%7DSubscription>
>  endpoint: ID-S206035J4463581-1942-1197280088510-5-1
>  operation: {http://docs.oasis-open.org/wsn/bw-2}Unsubscribe<http://docs.oasis-open.org/wsn/bw-2%7DUnsubscribe>
>  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<http://servicemix.org/wsnotification%7DSubscription: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.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Re: WSN2005 & SOAP - a full-featured external WSN client

Posted by Bartosz <Ba...@sabre.com>.


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.


Re: WSN2005 & SOAP - a full-featured external WSN client

Posted by Guillaume Nodet <gn...@gmail.com>.
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.

On Dec 6, 2007 12:49 PM, Bartosz <Ba...@sabre.com> wrote:

>
>
> The problem is that the dynamically created subscriptions does not use
> http-bindings. So, I don't understand the last reply. My question was: is
> there a way to access the subcription manager endpoint from the outside
> using the http binding ? Is there a way to tell SM to create a http
> binding
> for every newly created subcription ?
>
> Regards,
>  Bartek
>
>
>
> gnodet wrote:
> >
> > Yeah, you can access those resources by using a wsa:To soap header and
> > specifying the
> > endpoint address that you received.  I can't tell you exactly how, but I
> > have tested that a long
> > time ago and it was working without any problems.
> >
> > On Nov 16, 2007 2:34 PM, Bartosz <Ba...@sabre.com> wrote:
> >
> >> Last
> >> question, is it possible to access the dynamically created WSN entities
> >> "from the outside" (from an external client) ? That is, to for example
> >> send
> >> a SOAP envelope with Unsubscribe message to the SubscriptionManager ?
> >> Subscription Manager is created when subscribe is called. The address
> is
> >> sth
> >> similar to:
> >>
> >>
> http://servicemix.org/wsnotification/Subscription/ID-S206035J4463581-3122-1195219514245-2-0
> >> .
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/WSN2005---SOAP---a-full-featured-external-WSN-client-tf4810818s12049.html#a14190921
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/