For Programmers: Free Programming Magazines  


Home > Archive > PERL Miscellaneous > July 2005 > problem with perl WSDL









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author problem with perl WSDL
m.simsic@planet.nl

2005-07-27, 9:03 am

Since a couple of days I am occupied with a problem which I cannot
solve.I installed the perl library SOAP::Lite and SOAP::WSDL from
cnet.org.
I've created the following perl script to make a connection with the
WSDL file:

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";

YOu can find the wsdl file at:
http://www.simsic.nl/got/DialogService.wsdl

When I trace the perl file I get the following:
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: ()

Can someone explain me where the problem lies? The WSDL file should be
ok, and cannot be changed, since other clients are also working with
this WSDL file.
Any help appreciated!

Kind regards,
Marko

m.simsic@planet.nl

2005-07-29, 9:04 am


m.simsic@planet.nl wrote:
> Since a couple of days I am occupied with a problem which I cannot
> solve.I installed the perl library SOAP::Lite and SOAP::WSDL from
> cnet.org.
> I've created the following perl script to make a connection with the
> WSDL file:
>
> 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";
>
> YOu can find the wsdl file at:
> http://www.simsic.nl/got/DialogService.wsdl
>
> When I trace the perl file I get the following:
> 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: ()
>
> Can someone explain me where the problem lies? The WSDL file should be
> ok, and cannot be changed, since other clients are also working with
> this WSDL file.
> Any help appreciated!
>
> Kind regards,
> Marko

Nobody an idea how to solve this issue?

xhoster@gmail.com

2005-07-29, 5:03 pm

m.simsic@planet.nl wrote:
> m.simsic@planet.nl wrote:

.....
[color=darkred]

....[color=darkred]

The Perl module obviously does not feel that the WSDL file is fine.

Specifically, it seems to object to:

<wsdl:message name="startDialogRequest"> </wsdl:message>

having no "part" between the tags. Whether that is a reasonable objection
or not, I don't know. I know Perl, not WSDL. If you can point me (us) to
the section of some authoritative guide on WSDL saying what is supposed to
happen in this case, we will be more likely to be able to help.
[color=darkred]

What do these other clients do when they encounter startDialogRequest?
Do you know for a fact that removing that from the XML would break other
clients?

[color=darkred]
[color=darkred]
> Nobody an idea how to solve this issue?


If you are really desperate, you could try hacking SOAP:WSDL

by commenting out line 165 and then changing 169 from

while (my $part=$parts->shift) {

to

while ($parts and my $part=$parts->shift) {

I don't know what long range repercussions this might have, but it would
stop the immediate error you are getting.

Xho

--
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service $9.95/Month 30GB
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2009 codecomments.com