Hi Ryan, Part of the problem is that I don't do the maintenance of the Zope server code. Someone else does that. Another person is using a python XmlRpc client to connect to the Zope server, and his code can interpret the "long int" without a problem.
I read the XmlRpc Types page on the xml.apache.org website. And I see that there is no definition for "long int". I suppose that Zope's XmlRpc server has extended the spec to include "long int", so I need to know how to hack the XmlRpc classes so that they can parse "long int". thanks, mike --- Ryan Hoegg <[EMAIL PROTECTED]> wrote: > Hi Mike, > > You may want to read the XML-RPC spec at > http://www.xmlrpc.com/spec for > more information on the data types supported by > XML-RPC. In the "Scalar > <value>s" section, it says that integers are "four > byte signed integers" > and are denoted by <i4> or <int>. Further down in > the 1/21/99 update, > specific questions about allowable ranges for int > and double are > mentioned. It says that int is strictly defined as > 32 bit, while double > is "implementation-dependent". > > It seems to me that your options are to somehow pack > your large numbers > into the other data types (string or several ints) > or to use a different > web services protocol like SOAP. > > If it was my project I might try using the packed > int approach, i.e. 4 > 32 bit ints are packed to make a single 128 bit int. > You could put them > in a struct or a vector, the advantage of the struct > being that you can > explicitly name them "int-byte1", "int-byte2", etc. > > -- > Ryan Hoegg > ISIS Networks > > mike marsh wrote: > > >I learned about XMLRPC only a few days ago, so if > it > >sounds like I don't know what I'm talking about > >then...I don't. > > > >MY QUESTION: > >I think I want to know how to make my XmlRpcClient > >understand <value><long int> 1524335 </long > >int></value>. > > > >MY SITUATION: > >I need to connect to a Zope database via XmlRpc. I > >try calling a particular method, but an > >XmlRpcException gets thrown. The exception string > >says "cannot marshal <type 'long int'>. I suppose > I > >need an XmlRpc parser that can interpret <long int> > >and create a Long object. Can someone tell me how > to > >modifiy org.apache.xml.XmlRpc.java? > > > >Below is some more info that may help explain my > >problem. > > > >Thanks in advance, > >mike > > > >STACK TRACE: > >My code generates the following stack trace. > >org.apache.xmlrpc.XmlRpcException: Unexpected Zope > >exception: cannot marshal <type 'long int'> objects > > at > >org.apache.xmlrpc.XmlRpcClient$Worker.execute(XmlRpcClient.java:414) > > at > >org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:149) > > at > >ncmi.dbclient.DBClient.query(DBClient.java:42) > > at > ncmi.dbclient.Browser.main(Browser.java:91) > > > >Client calling procedure > >'EMDB.Groups.Group_1.Project_59.Microscopy.values' > >with parameters [] > >Beginning parsing XML input stream > >startElement: methodResponse > >startElement: value > >startElement: struct > >startElement: member > >startElement: name > >endElement: name > >startElement: value > >startElement: int > >endElement: int > >endElement: value > >endElement: member > >startElement: member > >startElement: name > >endElement: name > >startElement: value > >startElement: string > >endElement: string > >endElement: value > >endElement: member > >endElement: struct > >endElement: value > >endElement: fault > >endElement: methodResponse > >DEBUG: > > > __________________________________________________ Do you Yahoo!? New DSL Internet Access from SBC & Yahoo! http://sbc.yahoo.com
