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

Re: Problems with callback

Juan Carlos Coruna wrote:
> Hi,
> I try to test a python client with a callback interface and I become the following error on  the server:
> 29-mar-01 18:37:48 INFO  CallbackXmlRpcDriver: Accessing client callback web server using given url=http://localhost:8000
> 29-mar-01 18:37:48 INFO  Authenticate: Successful login for client jcoruna
> java.lang.RuntimeException: Error decoding BASE64 element: miscalculated data length!
>         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:523)
>         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
>         at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
>         at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
>         at helma.xmlrpc.XmlRpc.parse(XmlRpc.java:209)
>         at helma.xmlrpc.XmlRpcClient$Worker.execute(XmlRpcClient.java:133)
>         at helma.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:68)
>         at org.xmlBlaster.protocol.xmlrpc.CallbackXmlRpcDriver.sendUpdate(CallbackXmlRpcDriver.java:91)
>         at org.xmlBlaster.engine.callback.CbInfo.sendUpdate(CbInfo.java:99)
>         at org.xmlBlaster.engine.ClientInfo.sendUpdate(ClientInfo.java:157)
>         at org.xmlBlaster.engine.MessageUnitHandler.invokeCallback(MessageUnitHandler.java:396)
>         at org.xmlBlaster.engine.MessageUnitHandler.addSubscriber(MessageUnitHandler.java:264)
>         at org.xmlBlaster.engine.RequestBroker.subscribeToOid(RequestBroker.java:551)
>         at org.xmlBlaster.engine.RequestBroker.subscribe(RequestBroker.java:296)
>         at org.xmlBlaster.engine.XmlBlasterImpl.subscribe(XmlBlasterImpl.java:69)
>         at org.xmlBlaster.protocol.xmlrpc.XmlBlasterImpl.subscribe(XmlBlasterImpl.java:62)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at helma.xmlrpc.Invoker.execute(XmlRpcServer.java:267)
>         at helma.xmlrpc.XmlRpcServer$Worker.execute(XmlRpcServer.java:138)
>         at helma.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:67)
>         at helma.xmlrpc.WebServer$Connection.run(WebServer.java:330)
>         at helma.xmlrpc.WebServer$Runner.run(WebServer.java:248)
>         at java.lang.Thread.run(Thread.java:484)
> 29-mar-01 18:37:48 WARN  MessageUnitHandler: id=CallbackFailed reason=I/O exception: java.io.IOException: Error decoding BASE64 element: miscalculated data length!
> 29-mar-01 18:37:48 INFO  MessageUnitHandler: Removed subcriber [jcoruna] from message 'Navision.Request'
> But on the callback server I see the message and after this I must rrsubscribe to obtain another message, and the problem repeats.

There seems to be a BASE64 mismatch between the Python and Java
xmlrpc implementations.
Try to post the problem to the xmlrpc developer lists.
Please report any solutions for this problem to our list as well.

> I'm testing the yesterday CVS version.
> Another question: if I send some messages to a key, only the last one is accesible from the get method. Is this true? This pattern is not like a queue.

Accessing the history of messages is not supported,
but on the requirement schedule list.
You need to use different oid to have access to older

> And: If I send a message to the oid='Navision.Request.26451' and another one to the id='Navision.Request.85600'. How can I retrieve this two with one get method and without knowing the las part of the oid? Maybe something like oid='Navision.Request.*'.

Regular expressions are not supported with oid,
since for these cases we use XPath.
Send some meta information with your key,
which you query with XPath.



Marcel Ruff
mailto:ruff at swand.lake.de