From: Sybren <sy...@st...> - 2007-10-21 16:46:02
|
Hi Josh & rest of the list, Thanks for helping me out. > I think all of this is covered in the zsi developers guide, You mean guide-zsi-2.0.pdf? It only covers cases concerning WSDL. Since I'm not working from a WSDL file, I didn't read it. If there is information in there that does apply in cases that don't use WSDL, I recommend a change in chapter titles. Perhaps it should be merged with zsi-2.0.pdf. > So with "zsi_server.py", unless everything you return has a typecode > to describe it you need to use "rpc=True" Why isn't this described in any of the examples on the website nor in zsi-2.0.pdf? I find the documentation lacking in describing *why* something is done. It just gives examples without much explanation. > Secondly, with "exported.py" the return value needs to be either a > list or a dict. This also isn't described. It is done as such, but it isn't explained nor is any attention drawn to the fact that only lists or dicts can be used. And why can Java SOAP services return integers, booleans and strings, but is ZSI limited to lists or dicts? > Third, the complextypes. If a typecode's pyclass is used to parse > messages, it must have constructors that take only optional > arguments. There is an example with a constructor that only takes optional argument, but the documentation doesn't actually tell anyone that this is *required*. The documentation and ZSI software can be really improved if those things are explained in the documentation and tested in the software. For instance, the typecode class could check that the pyclass has a constructor that can be called without arguments, for example by introspection via ClassName.__init__.func_defaults or by simply creating an instance of the class. Greetings, -- Sybren Stüvel http://www.stuvel.eu/ http://www.flickr.com/photos/sybrenstuvel |