[perl wsdl] WSDL call levert niet de juiste gegevens

Pagina: 1
Acties:

  • activeX1
  • Registratie: December 1999
  • Laatst online: 23:45
Ik heb al enige dagen een probleem waar ik niet uitkom. Ik heb de perl library SOAP::Lite en SOAP::WSDL geinstalleerd van cnet.org.
De volgende perl file heb ik gebruikt om een aanroep te maken met een WSDL:

use SOAP::WSDL;
warn "Loaded...\n";
import SOAP::Lite +trace;
warn "Loaded...\n";
my $soap=SOAP::WSDL->new(wsdl => 'http://iets.nl/DialogService?wsdl');
warn "Loaded...\n";
$soap->proxy ('http://iets.nl/DialogService');
warn "Loaded...\n";
$soap->wsdlinit;
warn "Loaded...\n";
my $sim=$soap->call ('startDialog');
warn "Loaded...\n";

De WSDL file kan je bekijken op:
http://www.simsic.nl/got/DialogService.wsdl

Bij een trace van het perl file krijg ik het volgende te zien:
D:\install>test.pl
Loaded...
Loaded...
SOAP::Transport::new: ()
SOAP::Serializer::new: ()
SOAP::Deserializer::new: ()
SOAP::Parser::new: ()
SOAP::Lite::new: ()
Loaded...
SOAP::Transport::HTTP::Client::new: ()
Loaded...
SOAP::Deserializer::new: ()
SOAP::Parser::new: ()
SOAP::Schema::new: ()
SOAP::Schema::DESTROY: ()
SOAP::Deserializer::DESTROY: ()
SOAP::Parser::DESTROY: ()
Loaded...
Error processing WSDL: No parts found for message startDialogRequest with path '/wsdl:definitions/
wsdl:message[@name='startDialogRequest']/wsdl:part' at C:/Perl/site/lib/SOAP/WSDL.pm line 165.
SOAP::Deserializer::DESTROY: ()
SOAP::Parser::DESTROY: ()
SOAP::Transport::DESTROY: ()
SOAP::Transport::HTTP::Client::DESTROY: ()
SOAP::Serializer::DESTROY: ()

Ziet iemand waar mijn probleem zit? Google etc al gechecked, zit al 2 dagen met dit probleem...Het probleem zit in de perl file, aangezien deze dienst gewoon wel werkt...

[ Voor 103% gewijzigd door activeX1 op 22-07-2005 18:23 ]


  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

In ieder geval verwacht jij dat WSDL een string returnt. Dit is kennelijk niet geval: zoals je ziet krijg je een Hash reference.
Ik ken WSDL verder niet, maar bekijk de documentatie van de modules eens. Daar staat ongetwijfeld in wat je terugkrijgt en in welk formaat.

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • activeX1
  • Registratie: December 1999
  • Laatst online: 23:45
Verder niemand een idee?

  • activeX1
  • Registratie: December 1999
  • Laatst online: 23:45
Laatste kick..any WSDL experts available?

  • activeX1
  • Registratie: December 1999
  • Laatst online: 23:45
Allerlaatste schreeuw om hulp!!!

  • activeX1
  • Registratie: December 1999
  • Laatst online: 23:45
Momenteel heb ik de service bijna draaien. Probleem is dat bij de aanroep van één method (het zetten van een naam), het volgens mij iets te snel gaat voor de server om te verwerken. Het script is momenteel als volgt:

use SOAP::Lite +trace;
$service = SOAP::Lite ->uri('http://iets.nl/DialogService?wsdl') ->proxy('http://iets.nl/DialogService');

$service->startDialog('');
$result=$service->setLanguage('nl')->result();
$resulta=$service->setAbbot('naam')->result();
print "setAbbot=$resulta\n";

De aanroep van de method retourneerd netjes een Ok, echter blijkt dat de naam op de server nog niet goed staat.

Hoe kan ik in perl aangeven dat de sessie niet moet verlopen of slecht na een bepaalde tijd, zodat deze naam goed gezet kan worden?
Pagina: 1