Forum OpenACS Q&A: xotcl-soap for document literal

<div>I'm testing an xotcl-soap implementation using Stefan Sobernig's manual example and unable to proceed:</div>

<div>
namespace import -force ::xosoap::client::*
namespace import ::xorb::stub::*
set endpoint http://xx.xx.xx.xx:8080/path/
set glueObject [SoapGlueObject new -endpoint $endpoint -messageStyle ::xosoap::DocumentLiteral]
ProxyObject EchoClient -glueobject $glueObject
EchoClient ad_proc -returns xsString \
getxxx {-transuid xsString} {
By calling this proc, a remote call is issued \
against the previously defined endpoint
} {}
ns_write [EchoClient getxxx -transuid 2]
</div>

<div>I've used the same format of specifying the arguments as suggested. The following is the error produced when I try to get my example running:</div>

<div>

[15/Nov/2010:14:44:12][10709.1094752576][-default:2-] Notice: exception type ="::xorb::exceptions::RequestorException">
message:wrong # args for method '__parse__': valid arguments -transuid xsString /message
description:
Requestor failed dispatching your invocation request
/description
errorStack:wrong # args for method '__parse__': valid arguments -transuid xsString
while executing
"::xotcl::interpretNonpositionalArgs $args"
(procedure "__parse__" line 1)
::xotcl::__#t-&gt;__parse__
invoked from within
"my __parse__ -transuid 2"
("eval" body line 1)
invoked from within
"eval my __parse__ [lindex $args 0]" /errorStack>
[15/Nov/2010:14:44:12][10709.1094752576][-default:2-] Error: GET http://path
referred by ""
can't read "message": no such variable
::xotcl::__#w ::xoexception::Throwable->message
invoked from within
"$e message"
invoked from within
"subst {
Exception caught. Please, consult the log file for details:
[$e message]
}"
("uplevel" body line 4)
invoked from within
"uplevel $catchScript"
invoked from within
"if { "error" == "$errorType" } {
uplevel [ list set $errorName $result ]
uple..."
(procedure "try" line 36)
::xoexception::Throwable->try
invoked from within
"::xoexception::Throwable try {
my debug INNER-ARGS=$args
#$requestor setup
$requestor call $args
} catch {Exception e} {
my debug EXCEPTION=..."
("uplevel" body line 1)
invoked from within
"uplevel ::xoexception::Throwable try $args"
(procedure "::xoexception::try" line 3)
invoked from within
"::xoexception::try {
my debug INNER-ARGS=$args
#$requestor setup
$requestor call $args
} catch {Exception e} {
my debug EXCEPTION=[$e serial..."
(procedure "getxxx " line 5)
::template::EchoClient->getxxx
invoked from within
"EchoClient getxxx -transuid 2"
("uplevel" body line 21)
invoked from within
"uplevel {
namespace import -force ::xosoap::client::*
namespace import ::xorb::stub::*
set endpoint http://xxx.xx....";
(procedure "code::tcl::/path" line 2)
invoked from within
"code::tcl::$__adp_stub"
("uplevel" body line 12)
invoked from within
"uplevel {
if { [file exists $__adp_stub.tcl] } {
# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare"
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 6)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
</div>

<div>So far from what I've understood the implementation must support the Document Literal format of wsdl too, which is what I'm trying to achieve. The acs-service-contract is using 5.7 version and both xotcl-soap+xotcl-request-broker are on 0.5d. </div>