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

Sven Van Caekenberghe scaekenberghe at common-lisp.net
Thu Sep 8 15:45:30 UTC 2005


Hi Carlos,

On 08 Sep 2005, at 00:39, Carlos Ungil wrote:

> Hello,
>
> I've been playing with the code, using openmcl:

I was (happily) surprised to find that somebody is already checking  
out this code!
I am still in the process of writing it, it is far from ready (pre- 
pre alpha).
I am even more surprised that you even managed to make some SOAP calls !

> [ 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

I applied all your changes expect that ones to the envelope.
I understand what you are getting at (more or less - but not  
completely).
The soap encoding style is only applicable to rpc style  
conversations, no ?
Could you maybe give an example (and xml wire dump) to show what you  
mean ?

I will look into the regular cvs checkout to see what is wrong there...

In any case, thanks for the interest.

Sven



More information about the cl-soap-devel mailing list