[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] Unsubscribing with pyBlaster



Doug.Palmer at csiro.au schrieb:
> I've been testing layer on top of the pyBlaster python
> interface to
> xmlBlaster. A simple OID subscription is OK, but when I
> unsubscribe, I get
> the following response.
> 
> 05-07-2003 ERROR Test1 unable to subscribe to <key
> oid='TestTopic'
> queryType='EXACT'/>.
> Traceback (most recent call last):
>   File
>
"d:\pal155\src\boeing\python\wedgetail\infra\xmlblaster\XmlBlasterInterface.
> py", line 121, in unsubscribe
>     XmlBlasterCallbackClient.unsubscribe(self, key, qos)
>   File
> "c:\Python22\lib\site-packages\pyBlaster\pyBlaster.py",
> line 241, in
> unsubscribe
>     self.proxy.xmlBlaster.unsubscribe(self.sessionId,
> xmlKey, qos)
>   File
> "C:\Python22\Lib\site-packages\pyBlaster\xmlrpclib.py",
> line 986, in
> __call__
>     return self.__send(self.__name, args)
>   File
> "C:\Python22\Lib\site-packages\pyBlaster\xmlrpclib.py",
> line 1239, in
> __request
>     verbose=self.__verbose
>   File
> "C:\Python22\Lib\site-packages\pyBlaster\xmlrpclib.py",
> line 1037, in
> request
>     return self._parse_response(h.getfile(), sock)
>   File
> "C:\Python22\Lib\site-packages\pyBlaster\xmlrpclib.py",
> line 1138, in
> _parse_response
>     return u.close()
>   File
> "C:\Python22\Lib\site-packages\pyBlaster\xmlrpclib.py",
> line 703, in
> close
>     raise apply(Fault, (), self._stack[0])
> Fault: <Fault 0: 'java.lang.NoSuchMethodException:
>
org.xmlBlaster.protocol.xmlrpc.XmlBlasterImpl.unsubscribe(java.lang.String,
> java.lang.String, java.lang.String)'>

In pyBlaster.py there is a typo at two places,
it must be changed from 

 unsubscribe -> unSubscribe

hope it helps

Marcel

> 
> I'm using xmlBlaster 0.8.46.
> 
> Any suggestions as to what's wrong here? The
> subscribe/unsubscribe code is:
> 
>     def subscribe(self, sub):
>         """Subscribe to this interface.
> 
>         Start listening to the subscription key with
> ourself as a
> recevier."""
>         if not self.isOpen():
>             raise InterfaceException, "Interface %s is
> not open." %
> self.getId()
>         if self.subscriber != None:
>             raise SubscriptionException, "Interface %s is
> already subscribed
> to.", self.getId()
>         self.subscriber = sub
>         try:
>             key = self.getSubscribeKey()
>             qos = self.getSubscribeQoS()
>             XmlBlasterCallbackClient.subscribe(self, key,
> qos)
>         except Exception:
>             self.logger.error("%s unable to subscribe to
> %s." %
> (self.getId(), key), exc_info = True)
>             raise InterfaceException, "Interface %s
> unable to subscribe." %
> self.getId()
>         self.logger.debug("%s started listening." %
> self.getId())
>         
>     def unsubscribe(self, sub):
>         """Unsubscribe to this interface"""
>         if not self.isOpen():
>             raise InterfaceException, "Interface %s is
> not open." %
> self.getId()
>         if self.subscriber != sub:
>             raise SubscriptionException, "Interface %s is
> not subscribed
> to.", self.getId()
>         self.subscriber = None
>         try:
>             key = self.getSubscribeKey()
>             qos = self.getSubscribeQoS()
>             XmlBlasterCallbackClient.unsubscribe(self,
> key, qos)
>         except Exception:
>             self.logger.error("%s unable to unsubscribe
> to %s." %
> (self.getId(), key), exc_info = True)
>             raise InterfaceException, "Interface %s
> unable to unsubscribe."
> % self.getId()
>         self.logger.debug("%s stopped listening." %
> self.getId())
> 
>