From: Claudio P. <cla...@gm...> - 2017-01-02 15:06:21
|
Thanks Gustaf and Wolfgang. I modified the proc ::WS::AOLserver::Return as per Gustaf suggestion, but I have not yet succeeded executing the sample EchoWebService. To reduce the complexity I modified the call to the service so as to make a single call to the SimpleEcho method. Executing the script CallEchoWebService I receive a screen with the correct results, but looking at the error.log it seems that the calls to ::WS::AOLserver::Return be duplicated and finally I get an error complaining that the connection is already closed. Here is an excerpt of the error log. [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: WS::AOLserver::Redirect: from '{} tclws ws echoexample wsdl' to '/tclws/ws/echoexample/index.tcl' [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ...entering ::WS::AOLserver::Return requestType=wsdl [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ... calling ::WS::Server::generateWsdl [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ...entering ::WS::AOLserver::Return requestType=wsdl [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ... calling ::WS::Server::generateWsdl [02/Jan/2017:15:37:13][3409.7fa0d5499700][-conn:oacs-5-9:3-] Notice: Calling SimpleEcho via DoCalls! [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: WS::AOLserver::Redirect: from '{} tclws ws echoexample op' to '/tclws/ws/echoexample/index.tcl' [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ...entering ::WS::AOLserver::Return requestType=op [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ...::WS::AOLserver::Return calling ::WS::Server::callOperation service=echoexample sock=nosock [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Notice: ...entering ::WS::AOLserver::Return requestType=op [02/Jan/2017:15:37:13][3409.7fa0d5499700][-conn:oacs-5-9:3-] Notice: Received: {SimpleEchoResult {This is a test}} [02/Jan/2017:15:37:13][3409.7fa0d5398700][-conn:oacs-5-9:4-] Error: connection already closed, can't get content while executing "ns_conn content" (procedure "ns_getcontent" line 75) invoked from within "ns_getcontent -as_file false -binary false" ("uplevel" body line 37) invoked from within "uplevel 1 { set sock nosock ns_log notice "\n...entering ::WS::AOLserver::Return requestType=$requestType" switch -exact -- $requestType { ..." (procedure "::WS::AOLserver::Return" line 3) invoked from within "::WS::AOLserver::Return" I don't understand why this is happening. Wolfgang: did You modify the proc ::ws_aolserver_redirect replacing ns_rewriteurl with ns_internalredirect? Best regards. Claudio 2017-01-02 13:34 GMT+01:00 Wolfgang Winkler < wol...@di...>: > Hi Claudio! > > I can confirm what Gustaf wrote below. We are using our own initialization > routine, which is similar to the one provided by the tclws package. We have > our own logging facilities, wo we don't need the log package: > > namespace eval ::WS::AOLserver { > if {![info exists wsVersion]} { > variable wsVersion [package require WS::Server] > } > #if {![info exists logVersion]} { > # variable logVersion [package require log] > #} > } > > For returning values, we use exactly the line from Gustaf: > > set data(query) [ns_getcontent -as_file false -binary false] > > This is handy for REST interfaces as well. > > regards, > > Wolfgang > > > > Am 2016-12-31 um 17:51 schrieb Gustaf Neumann: > > Am 30.12.16 um 19:00 schrieb Claudio Pasolini: > > Hi all, > > I'm in the process of upgrading several OpenACS instances and migrating > them from AolServer 4.5 to the latest NaviServer. > > One of the instances makes use of TCLWS for bulding a couple of SOAP web > services and I'm having trouble to make it work. > > Here are the first problems encountered: > > - ns_ictl doesn't support the 'package' argument. I replaced the > command > ns_ictl package require log > with > ns_ictl trace allocate {package require log} > > probably, using "package require log" will be sufficient as well. > > > - but I'm not sure about eventual side effects. > - In a proc called by ns_register_filter preauth I replaced ns_rewrite > with ns_internalredirect but I observed a strange behaviour. > ns_register_filter invokes the proc passing one argument, but actually > the proc receives two, prehauth being added. > > you are probably referring to the old module "nsredirect". Calling > ns_internalredirect should be fine. > > Yes, there is a difference between the calling conventions in AOLserver > and NaviServer: > NaviServer tells the developer the stage, at which the proc was invoked > (the same proc > might be registered for multiple states (such as "preauth", "postauth" or > "trace"). This > difference is as well handled in e.g. OpenACS since 10+ years. > > > - I stumbled in the same problem posted by Wolfgang Winkler > Error: can't set "xsltSchemaDom": var is read-only > and solved it thanks to Gustaf tip. > > should not happen in recent versions of NaviServer > > > - Calling the sample EchoWebService I get a strange error > Error: invalid length: 779 > executing the command > ns_conn copy 0 $length $fp > > this comes probably from this section: > https://github.com/bovine/tclws/blob/master/AOLserver.tcl#L82 > > I would think that you can replace the section "Get POSTed data" > by something like: > > set data(query) [ns_getcontent -as_file false -binary false] > > This has at least the following advantages > - less hacky > - works for http and https > - works also when spooling post data > > all the best > -gn > > > I wonder if someone (Wolfgang?) having already a production site running > TCLWS with NaviServer could suggest me how to proceed. > > Happy New Year! > > Claudio > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > > > _______________________________________________ > naviserver-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > > -- > Univ.Prof. Dr. Gustaf Neumann > WU Vienna > Institute of Information Systems and New Media > Welthandelsplatz 1, A-1020 Vienna, Austria > > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > > > _______________________________________________ > naviserver-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > > -- > > *Wolfgang Winkler* > Geschäftsführung > wol...@di... > mobil +43.699.19971172 <+43%20699%2019971172> > > dc:*büro* > digital concepts Novak Winkler OG > Software & Design > Landstraße 68, 5. Stock, 4020 Linz > www.digital-concepts.com > tel +43.732.997117.72 > tel +43.699.1997117.2 > > Firmenbuchnummer: 192003h > Firmenbuchgericht: Landesgericht Linz > > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel > > |