in reply to Problem with combination of SOAP::Lite and Apache AXIS2

I might be reading the WSDL incorrectly but it looks very much like that this is where the problem lies. The actual error is:

namespace mismatch require http:/ +/axisversion.sample/xsd found http://ws.apache.org/axis2
and the client is indeed sending the latter namespace in the request:
<namesp5:getVersion xmlns:namesp5="http://ws.apache.org/axis2"/>
However it looks to me that the WSDL is actually telling it to do that:
<wsdl:input><soap:body namespace="http://ws.apache.org/axis2" use="lit +eral" /> </wsdl:input>
It might be possible to over-ride this with the uri method in the soap client but without seeing the client code it is difficult to comment further.

/J\

Replies are listed 'Best First'.
Re^2: Problem with combination of SOAP::Lite and Apache AXIS2
by Anonymous Monk on May 17, 2006 at 17:16 UTC

    I doubt. Last night, I tried to write a AXIS client to call this service provided through AXIS2, and it worked. Now I clearly intend to believe that the problem is with SOAP::Lite.

    One of the problem with SOAP::Lite is that it was not developed according to a high standard. Reading the document, you will see that, there are many places saying things like "this is not supported, and that is not supported".

    For me, the solution is to get rid of Perl, and that's what I am going to do.

      I'm sure the authors of SOAP::Lite will be delighted with your patches.

      I'm not quite sure what your beef is, you have ignored my inquiry as to what your client code looked like and simply decided that SOAP::Lite doesn't work at all.

      I think there is a problem with parsing the WSDL that axis2 generates, but this is partially because it exercises a number of features that are axis specific. Anyhow SOAP::Lite will work fine with that service (and I have installed axis2 to test this), this code works as expected for me:

      use SOAP::Lite; + my $soap = SOAP::Lite->new(); + $soap->uri('http://axisversion.sample/xsd'); $soap->service('http://localhost:8080/axis2/services/version?wsdl'); + + print $soap->getVersion();

      /J\

        Something special to AXIS, oh, then that's not SOAP. Love what you have said.

        Your way gives this error:

        Transport is not specified (using proxy() method or service descriptio +n)