Skip Menu |

This queue is for tickets about the SOAP-WSDL CPAN distribution.

Report information
The Basics
Id: 48781
Status: open
Priority: 0/
Queue: SOAP-WSDL

People
Owner: Nobody in particular
Requestors: MARKSTOS [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: (no value)



Subject: Generated code refers to classes which do no exist
I am testing this with a WSDL file from Salesforce. After I used this tool, I tried to login to Salesforce via the generated code, but got this error: "Can't locate MyElements/login.pm" I found that the generated code referred to several classes in this name space which were not also generated. Here's an example: body => { 'use' => 'literal', namespace => 'http://schemas.xmlsoap.org/wsdl/soap/', encodingStyle => '', parts => [qw( MyElements::login )], }, If wsdl is going to generate an incomplete solution because the WSDL file is incomplete, it should at least print out a report telling me what all the missing classes are. In this case, there was no warning about the missing classes, and I'm not sure who is at fault. Mark
Show quoted text
> In this case, there was no warning about the missing classes, and I'm > not sure who is at fault.
I think I have a fix for this at https://github.com/scrottie/SOAP-WSDL/commit/45982ff33027f823bb0be17f996ac1813cd71433. The basic problem is that it attempts to autoload its various generated classes, but behavior in Perl leading up to 5.16 changed, leading it to think that they were already loaded when they in fact were not. Specifically, AbsolutelyAnythingAtAll->isa('UNIVERSAL') now always returns true, whereas previously it only did if the namespace 'AbsolutelyAnythingAtAll' existed. I've never seen documentation indicating that this behavior was intended.