portal Michała Hanćkowiaka
Begin main content
wm withdraw .; wm withdraw .output; wm geom .konsola 586x458+428+250;

# 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}}}}}}

# ...

uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...