|
I have two problems. I am not strong in SOAP and XML, but have built a couple of applications based around WSDL services.
My understanding is lacking, though, particularly in the deserializer area. Every time I have had to hack something in due to problems with namespaces or header parsing.
In my latest problem, I ended up hacking ....Deserializer::XSD to never use strict mode. First,
I was unable to get the parse set to strict to 0 by setting deserializer_args as documented (in the
MyInterface instantiation).
But what I really don't understand is why it would be trying to resolve any methods in the header at all. I am interested in the body, not the header. And if the header needs to be defined, is there some reason wsdl2perl.pl doesn't define the types?
I get:
Error deserializing message: Cannot resolve class for element Action at
/usr/local/lib/perl5/site_perl/5.8.9/SOAP/WSDL/Expat/MessageParser.pm line 226.
at line 1 at /usr/local/lib/perl5/site_perl/5.8.9/SOAP/WSDL/Expat/Base.pm line 82
That is a section of the header, and if I hard-code strict off this just is ignored and my software works fine.
So my two questions are:
1. What am I doing wrong with:
my $soap = MyInterfaces::ServiceOnline::ServiceOnlineSoap->new({
deserializer_args => { strict => 0 }
});
such that it still does strict parsing of the message?
2. What do I do to just ignore the header completely and just parse my accessors in the body region?
Also, I am not against paying for support. If Martin, or someone else, can spend an hour or two holding my hand I will pay good cash dollars at a normal consulting rate.
|