[cl-sockets-devel] wsdl parsing
Christophe Rhodes
csr21 at cantab.net
Wed Oct 24 10:07:39 UTC 2007
Hi,
Please forgive the naivety of this; I am a newcomer to the world of
soap, and I don't really understand what I'm doing, or which tool is
the likely cause of the problems I'm having.
I have a SOAP server, built using gsoap, which automatically generates
the attached .wsdl file; and I can successfully use cl-soap to call it
by hand as follows:
--- Begin REPL transcript ---
(let ((ns "http://tempuri.org/adb.xsd"))
(s-xml:register-namespace ns "adb" :adb)
(let ((xmethods (make-soap-end-point "http://gibbons.doc.gold.ac.uk:20703")))
(soap-call xmethods nil `((adb::|status| :|xmlns:adb| ,ns) (:|dbName| "/tmp/foodb")))))
;; SOAP CALL sending:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<soapenv:Body>
<adb:status xmlns:adb="http://tempuri.org/adb.xsd">
<dbName>/tmp/foodb</dbName>
</adb:status>
</soapenv:Body>
</soapenv:Envelope>
;; SOAP CALL receiving: <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:adb="http://tempuri.org/adb.xsd"><SOAP-ENV:Body><adb:statusResponse><result><numFiles>0</numFiles><dim>0</dim><length>0</length><dudCount>0</dudCount><nullCount>0</nullCount><flags>0</flags></result></adb:statusResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
(|adb|:|statusResponse|
(:|result| (:|numFiles| "0") (:|dim| "0") (:|length| "0") (:|dudCount| "0")
(:|nullCount| "0") (:|flags| "0")))
--- End REPL transcript ---
However, attempting to call the service using the wsdl parser does not
work, I think because of namespace problems:
--- Begin REPL transcript ---
(wsdl-soap-call "http://omras2.doc.gold.ac.uk/adb.wsdl" "status" :input `("status" ("dbName" "/tmp/foodb")))
;; SOAP CALL sending:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:tns="http://gibbons.doc.gold.ac.uk:20703//Service.wsdl" xmlns="http://gibbons.doc.gold.ac.uk:20703//Service.wsdl">
<soapenv:Body>
<status>
<dbName>/tmp/foodb</dbName>
</status>
</soapenv:Body>
</soapenv:Envelope>
;; SOAP CALL receiving: <?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:adb="http://tempuri.org/adb.xsd"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>Method 'status' not implemented: method name or namespace not recognized</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
--- End REPL transcript ---
So I guess my question is: is my wsdl malformed, or is there some
deficiency in cl-soap's wsdl parser? If the latter, how can I go
about fixing it? (As I say, I'm afraid I know very little about the
underlying SOAP technology, so please be as explicit as you have
patience for...)
Thanks,
Christophe
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: adb.wsdl
URL: <https://mailman.common-lisp.net/pipermail/cl-soap-devel/attachments/20071024/16ec37c6/attachment.ksh>
More information about the cl-soap-devel
mailing list