[cl-soap-devel] a couple of bug fixes

Carlos Ungil carlos.ungil at bluewin.ch
Wed Sep 7 22:39:02 UTC 2005


Hello,

I've been playing with the code, using openmcl:
[ http-client.lisp ]
117a118
 >   #+openmcl (ccl:make-socket :remote-host host :remote-port port)

soap-env and soapenv were used inconsistently:
[ namespaces.lisp ]
25c25
< (defparameter *soapenv-ns* (s-xml:register-namespace +soapenv-ns-uri+ 
"soap-env" :soapenv))
---
 > (defparameter *soapenv-ns* (s-xml:register-namespace +soapenv-ns-uri+ 
"soapenv" :soapenv))

I found also a copy-paste bug
[ soap.lisp ]
41c41
<         (detail (second (lxml-find-tag :|faultactor| (rest xml)))))
---
 >         (detail (second (lxml-find-tag :|detail| (rest xml)))))

and a bug in one of the test functions:
[ test-basic.lisp ]
94c94
<       (if (eql (lxml-get-tag result) 'ns1:|serviceMethodResponse|)
---
 >       (if (eql (lxml-get-tag result) 'ns1::|serviceMethodResponse|)

The following changes are not so obvious, but they are an improvement 
at least for the particular case I was testing. This requires an extra 
pair of parentheses sorrunding the body in the examples provided (if I 
understand correctly the body, and the header, can contain several 
elements):

[ soap.lisp ]
60,62d59
< (defun soap-header (simple-header-alist)
<   (cons 'soapenv:|Header| simple-header-alist))
<
64,69c61,67
<   `((soapenv:|Envelope|
<      :|xmlns:soapenv| ,+soapenv-ns-uri+
<      :|xmlns:xsd| ,+xsd-ns-uri+
<      :|xmlns:xsi| ,+xsi-ns-uri+)
<     , at header
<     (soapenv:|Body| ,body)))
---
 >   (append `((soapenv:|Envelope|
 >            :|xmlns:soapenv| ,+soapenv-ns-uri+
 >            soapenv:|encodingStyle| ,+soap-enc-ns-uri+
 >            :|xmlns:xsd| ,+xsd-ns-uri+
 >            :|xmlns:xsi| ,+xsi-ns-uri+))
 >         (when header `((soapenv:|Header| , at header)))
 >         `((soapenv:|Body| , at body))))

By the way, I cannot check out the cl-soap code using the command line 
("/project/cl-soap/cvsroot: no such repository"), but the web interface 
works.

Regards,

Carlos




More information about the cl-soap-devel mailing list