wm withdraw .; wm withdraw .output; wm geom .konsola 627x525+23+30; #% # tclws jako klient do serwera embeded... # + BLAD: przy ponownym zaladowaniu tego samego pliku wsdl... # lappend auto_path ~/tcl package re WS::Client #% 2.3.7 info load #% {/root/tcl/tls1.6/libtls1.6.so Tls} {/root/tcl/tdom0.8/libtdom0.8.2.so Tdom} {/root/tcl/dict/libdict8.5.2.so Dict} {/root/tcl/tclkit/lib/tk8.4/libtk8.4.so Tk} {{} zlib} {{} vfs} {{} rechan} {{} pwb} {{} Mk4tcl} set w1 [::WS::Client::GetAndParseWsdl http://localhost:5000/service/qqq/wsdl] dict get $w1 name #% qqq array names WS::Utils::simpleTypes Client,qqq,*met3* #% Client,qqq,tns1:met3Request set WS::Utils::simpleTypes(Client,qqq,tns1:met3Request) #% base string comment {} xns tns1 # + to sie powinno zmienic, ale sie nie zmiania... unset WS::Utils::simpleTypes(Client,qqq,tns1:met3Request) # + naprawia problem... w takim razie po co ten wpis do simpleTypes??? # dziwne, ale bez tego wpisu tez dziala... moze chodzi o cache??? array unset WS::Utils::simpleTypes Client,qqq,* # + to troche z duzo usuwa... patrz: ClientSide.tcl, "# MH" unset WS::Utils::simpleTypes(Client,qqq,tns1:met3Request) # + obecnie to nalezy zrobic po przeladowaniu wsdl, przed CreateStubs; # to nie jest wlasciwe rozwiazanie... ::WS::Client::CreateStubs qqq #% ::qqq::met1 {par1 par2} ::qqq::met2 liczbaElem ::qqq::met3 {p1 p2} ::qqq::razyDwa par1 # + BLAD: po dodaniu parametrow do met3, param. te nie chce sie pojawic ?! # w wsdl jest... czyli jednak nie mozna na zywo tego zmieniac ??? # po restartowaniu klienta wszystko jest ok...?!?!?! #dict set ::WS::Client::serviceArr(qqq) location http://127.0.0.1:5001/service/qqq/op; set _ "" # + na uzytek sockspy... qqq::met1 qqq 321 #% met1Result {a ku ku !!! par1=qqq, par2+1=322} qqq::met2 3 #% met2Result {{a qqq0 b 0} {a qqq1 b 1} {a qqq2 b 2}} qqq::met2 1 #% met2Result {{a qqq0 b 0}} qqq::met2 0 #% # + ??? qqq::met3 1 22 #% met3Result 23 qqq::razyDwa {1 2 3} #% razyDwaResult {2 4 6} # + warto obserwowac kom. soap... # widac ze sekwencja jest przekazywana w b. rozrzutny sposob!!! qqq::razyDwa {1 2 3.3} #% razyDwaResult {2 4 6.6} # + nie sprawdza sie dokladnie typow! qqq::razyDwa {} #% # + formalnie w wsdl min. elem to 1 ?!?!!? (blad?) catch {qqq::razyDwa {1 2 q}} err; set err #% can't use non-numeric string as operand of "*" # + dlaczego poawia sie tylko fault string?? # ogladamy wsdl ... # + dziala jesli WS ma >=1 metode!! # + widac ze kazda operacja ma kom. we i wy; # kom. te sa dokumentami xml, opisanymi w # w jezyku XML Schema... # package re http set h [http::geturl http://localhost:5000/service/qqq/wsdl]; http::data $h #%