Forum OpenACS Development: TCL8.3 and TCLSOAP1.6.7

Request notifications

Posted by Andrew T on
I've just installed OACS on a new machine running Redhat Linux 9.  Do I need to install tcl seperately? i can't find a /usr/lib/tclxx directory? there is a /usr/share/tcl8.3 and an /usr/local/aolserver/lib/tcl8.3 directory...

i've also downloaded and unpacked tclSOAP1.6.7 into /usr/local/tclsoap.. and did: export TCLLIBPATH='/usr/local/tclsoap' ...but when i run a tclsh and do: %package require SOAP, it gives me the error: "package log not found"... do i have to put the package in a specific directory to be able to use it?

I need to get tcl and tclsoap working asap... also can i use the package require command in a tcl file within a openacs app?

thanks in advance,


Posted by Mark Aufflick on
damn i hate closing the wrong browser tab - ok here is a summarised version of the post i just obliterated...

* aolserver uses it's own tcl8 libraries, so the installed libraries are irrelevant in most cases. I just compiled & ran aolserver 3.3 on redhat 9 with no problems.

* package require-ing in aolserver is non-trivial for aolserver versions less than 4.0 (which is still in beta, and not fully supported by OpenACS). Some of the implications and work-arounds can be found in these threads:

* alternatively, think about other soap options. William Byrne has written a SOAP package for OpenACS, see this thread:

Posted by Andrew T on
Thanks for the advice,

I actually just need tclSOAP to do client side calls to the google api... i had a look at the SOAP package for OACS but doesnt have any functions for generating client side stubs...

if any1 has had any success using tclsoap for client side use in openacs .. any input is appreciated.


Posted by Andrew Piskorski on
Well Andrew, you are in luck.

First of all, TclSOAP probably works just fine in AOLserver 4.0, exactly the same way it works in tclsh, although I haven't tried it myself and don't remember whether others have reported success or not. Which version of AOLserver are you using? Try the latest pre-release Beata of 4.0 from SourceForge.

And coincidentally, the very same day you posted your question, Vinod announced his XML-RPC package for OpenACS.

Posted by Vinod Kurup on
Unfortunately, my package only does XML-RPC, not SOAP. I think the best option might be to try AOLserver 4 which would allow you to easily use TclSOAP.
Posted by Andrew T on
[22/Oct/2003:21:03:54][10846.1076813152][-sched-] Notice: sched: starting
I have been stuck with this error for days... i've set auto_path as global but i keep getting this error and server startup fails... does anyone know how to fix it or where else i need to define auto_path for this to work?

[22/Oct/2003:21:03:54][10846.1074099808][-main-] Notice: serv: waiting for warmup
[22/Oct/2003:21:03:55][10846.1078881504][-conn0-] Error: can't read "auto_path": no such variable
can't read "auto_path": no such variable
    while executing
"set auto_oldpath $auto_path"
    (procedure "auto_load_index" line 7)
    invoked from within
    (procedure "auto_import" line 13)
    invoked from within
"namespace import ::rpcvar::is_rpcvar"
    (in namespace eval "::SOAP" script line 1)
    invoked from within
"namespace eval ::SOAP {namespace import ::rpcvar::is_rpcvar
namespace import ::rpcvar::rpcheaders
namespace import ::SOAP::Utils::getElementValues
[22/Oct/2003:21:03:55][10846.1078881504][-conn0-] Fatal: tclinit: failed to create procs

Posted by Andrew T on
And one more thing does any1 know what this SOAP error means?

SOAP transport error: token ::http::5 status is "eof" and HTTP result code is ""

Posted by Andrew T on
Add another problem ... i fixed the auto_path error in a very dodgy way (if(![info exists auto_path]) set auto_path... in the procedure that was error-ing out.... now i have this problem when i try to make the SOAP call...

invalid command name "::http::config"
    while executing
"::http::config -useragent "TclSOAP/$version ($::tcl_platform(os))""
    (procedure "::SOAP::Transport::http::xfer" line 10)
    invoked from within
"$transport $procVarName $url $req"
    (procedure "::SOAP::invoke" line 18)