# test dzialania nowej wersji tclws ...
#
lappend auto_path ~/tcl
package require WS::Client
#% 2.3.7
# ...
# eksperymenty z www.webservicex.net
#
set w1 [::WS::Client::GetAndParseWsdl http://www.webservicex.net/globalweather.asmx?WSDL]
dict get $w1 name
#% GlobalWeather
# + tak mozna odczytac nazwe serwisu !!!
# teraz tworzymy cos w rodzaju pienka:
::WS::Client::CreateStubs GlobalWeather
#%
::GlobalWeather::GetWeather {CityName CountryName}
::GlobalWeather::GetCitiesByCountry CountryName
GlobalWeather::GetWeather "Poznan" "Poland"
#% GetWeatherResult {<?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>Poznan, Poland (EPPO) 52-25N 016-50E 92M</Location>
<Time>Dec 20, 2013 - 09:30 AM EST / 2013.12.20 1430 UTC</Time>
<Wind> from the SW (220 degrees) at 5 MPH (4 KT):0</Wind>
<Visibility> 1 mile(s):0</Visibility>
<SkyConditions> mostly cloudy</SkyConditions>
<Temperature> 37 F (3 C)</Temperature>
<DewPoint> 35 F (2 C)</DewPoint>
<RelativeHumidity> 93%</RelativeHumidity>
<Pressure> 30.18 in. Hg (1022 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather>}
GlobalWeather::GetWeather "Wroclaw" "Poland"
# ...
# czy nowa wersja tclws pracuje z gsoap ? TAK!!
# + musialem wprowadzic moje poprawki z tclws_old!
# + uruchomic serwer gsoap (soap/555)
# + w qqq.wsdl trzeba zmienic nr portu na 10000
#
set w5 [::WS::Client::GetAndParseWsdl file://[pwd]/qqq.wsdl]
dict get $w5 name
#% qqq
dict get $w5 location
#% http://localhost:10000
::WS::Client::CreateStubs qqq
#%
::qqq::pomnozRazy2 par
::qqq::zwrocCos liczba
::qqq::zwrocCos2 {}
::qqq::zwrocCos4 {}
::qqq::zwrocCos5 {}
::qqq::zwrocCos6 par
qqq::pomnozRazy2 {item {1 2 3 4}}
#% return {item {2 4 6 8}}
# + dlaczego tak tego trzeba uzywac???
qqq::pomnozRazy2 {item {1.1 2.2 3 4 5.5}}
#% return {item {2.20000005 4.4000001 6 8 11}}
qqq::zwrocCos 3
#% return {item {{a 0 b 0 c 0} {a 1 b 1 c 1} {a 2 b 4 c 8}}}
qqq::zwrocCos2
#% return {a 1 b 11 nast {a 2 b 22 nast {a 3 b 33 c 333} c 222} c 111}
qqq::zwrocCos4
#% a 111 b 222 c 333
qqq::zwrocCos5
#% return {a 111 b 222 c 333}
qqq::zwrocCos6 {a 111 b 222 c 333}
#% return {a 1110 b 222 c 333}
# ...
# czy nowa wersja tclws pracuje z axis 1 ? TAK!!
#
set w1 [::WS::Client::GetAndParseWsdl http://192.168.1.130:8080/axis/services/MojPrzyklad?wsdl]
dict get $w1 name
#% MojPrzykladService
::WS::Client::CreateStubs MojPrzykladService
#%
::MojPrzykladService::sayHello {}
::MojPrzykladService::sayHello2 in0
::MojPrzykladService::zwrocBeana {}
::MojPrzykladService::zwrocBeana2 in0
::MojPrzykladService::zwrocBeana3 in0
::MojPrzykladService::zwrocDrugiegoBeana {}
::MojPrzykladService::zwrocDrugiegoBeana2 in0
::MojPrzykladService::zwrocTrzeciegoBeana2 in0
::MojPrzykladService::sayHello
#% sayHelloReturn {A ku ku !!!}
::MojPrzykladService::sayHello2 4
#% sayHello2Return {item {{??? 0 ???} {??? 1 ???} {??? 2 ???} {??? 3 ???}}}
::MojPrzykladService::zwrocBeana
#% zwrocBeanaReturn {a 123 b 321}
::MojPrzykladService::zwrocBeana2 3
#% zwrocBeana2Return {item {{a 0 b 0} {a 10 b 100} {a 20 b 200}}}
::MojPrzykladService::zwrocBeana3 {item {{a 0 b 0} {a 10 b 101} {a 20 b 201}}}
#% zwrocBeana3Return {item {{a 0 b 0} {a 100 b 10100} {a 200 b 20100}}}
::MojPrzykladService::zwrocDrugiegoBeana
#% zwrocDrugiegoBeanaReturn {a 123 b 321 c {item {1 2 3 4}}}
::MojPrzykladService::zwrocDrugiegoBeana2 3
#% zwrocDrugiegoBeana2Return {item {{a 123 b 321 c {item {1 2 3 4 0}}} {a 123 b 321 c {item {1 2 3 4 1}}} {a 123 b 321 c {item {1 2 3 4 2}}}}}
::MojPrzykladService::zwrocTrzeciegoBeana2 2
#% zwrocTrzeciegoBeana2Return {item {{a 0 b {item {{a 123 b 321} {a 123 b 321} {a 123 b 321}}}} {a 1 b {item {{a 123 b 321} {a 123 b 321} {a 123 b 321}}}}}}
# ...