[Xml-compile] Help with a WSDL declaring multiple operations
with the same name
David McMath
mcdave at stanford.edu
Fri Aug 24 17:54:57 GMT 2012
On 8/23/12 6:20 PM, David McMath wrote:
> Dear List,
>
> I'm supposed to work with the WSDL file at
>
> http://www1.sabameeting.com/CWS/CWS.asmx?WSDL
>
> XML::Compile::WSDL11 seems not to quite understand the file, and I =
> can't decide whether to gripe about the WSDL or about Perl.
>
> With my eye, I can see that there are several operations with the name =
> "Find". I can't seem to invoke anything other than the one with =
> action "http://www.centra.com/CWS/FindUser". The attach script uses =
> XML::Compile::WSDL11::operations to list out facts about the =
> operations; I see the one for FindUser repeated but never, say =
> FindEvent. And when I do
>
> my $m =3D $wsdl->compileClient( 'Find',
> transport_hook =3D> \&_fake_server,
> port =3D> 'CWSSoap'
> ) ;
>
> I only get the FindUser method.
>
The URL I gave has evidently been having some issues. It works for me, =
but whatever. I quote what I think is the relevant snippet below; I can =
pass along the whole file if it helps (it's about 250K).
The issue seems to be that they violate recommendation "R2304" by using =
overloaded operators, but it's evidently still legal WSDL 1.1 (ok, they =
use the same name for input and output parameters; I edited my local =
copy to address that and it didn't help)
http://ws-i.org/profiles/BasicProfile-1.2-2010-11-09.html#R2304
Folks around the internet basically just advise variations on "don't =
overload functions". The workaround I've come up with it to further =
edit the WSDL myself to change the function names; I don't think that =
will affect the SOAP calls that are actually created, because there are =
different soapAction values for each case. That's a lot of work for me =
to screw up, so I'd prefer a different solution.
Any advice is appreciated, but mostly I'm just about ready to accept =
"no" as an answer and try to fix the WSDL.
dave
--
<wsdl:portType name=3D"CWSSoap">
...
<wsdl:operation name=3D"Find">
<wsdl:documentation =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/">Find all the Centra Users =
matching certain User parameters.</wsdl:documentation>
<wsdl:input name=3D"FindUser" message=3D"tns:FindUserSoapIn" />
<wsdl:output name=3D"FindUser" message=3D"tns:FindUserSoapOut" />
</wsdl:operation>
...
<wsdl:operation name=3D"Find">
<wsdl:documentation =
xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/">Find all the Centra Events =
matching cetain Event parameters.</wsdl:documentation>
<wsdl:input name=3D"FindEvent" message=3D"tns:FindEventSoapIn" />
<wsdl:output name=3D"FindEvent" message=3D"tns:FindEventSoapOut" />
</wsdl:operation>
...
</wsdl:portType>
> Can anyone offer a suggestion about how I might find the proper =
> method? I hope I'm just missing something simple.
>
> Thanks,
>
> dave
>
>
> _______________________________________________
> Xml-compile mailing list
> Xml-compile at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/xml-compile/attachments/20120824/b3=
391bc4/attachment.htm
More information about the Xml-compile
mailing list