5418SOAP::Lite to Weblogic err
- May 25, 2006Sample code for call:
use SOAP::Lite +trace;
#my.wsdl was generated by weblogic server
my $client = SOAP::Lite->service("file:///my.wsdl");
my $ret = $client->getCustomerInfo('%FIRST%', "3");
print Dumper $ret;
Causes Weblogic server to produce fault with error message:
Could not resolve method with element 'http://schemas.xmlsoap.org/wsdl
soap/:Envelope' as top element
Using tcpdump I captured the errant SOAP request--
<?xml version="1.0" encoding="UTF-8"?>
I was able to modify the xml so that it would work directly with a POST:
diff trypost.soaplitedefault trypost.works
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"However-- it seems that there's not a way to modify this namespace. By setting cache_dir
I can look at the stub generated and I see the following line in the "sub _call" (in the
So *that's* where it gets set-- right before the call is actually made-- any that must be
why I can't seem to override it with my own calls to register_ns.
I'm trying to override the serializer-- presumably if I can capture the register_ns call made
in the stub I can just ignore it when $prefix="soap". I haven't found any examples of how
to override the serializer, but I have gotten it to work to some extent. (It captures the
register_ns but then dies somewhere else.) I'm not sure how to
initialize the superclass as I have a 'bless' in my 'new' and it has a 'bless' in its 'new'.....
Any examples out there of overriding SOAP::Lite::Serializer? Other approaches or advice?
BTW- This is SOAP::Lite 0.67 - I seemed to have same/similar behavior under .65_3 but
upgraded before digging deeper.
- Next post in topic >>