SOAP::Lite and WSDL
Scott Runkel <[email protected]>
| Newsgroups | gmane.comp.windows.devel.soap.general |
|---|---|
| Organization | Hypix Media, Inc. |
| Message-ID | <00da01c24f94$180a0860$6d01a8c0@SCOTT3> |
Hi,
After much trial and tribulation, I finally have SOAP::Lite installed and
working on my server. I tried about 5 of the sample clients and 4 of them
worked, so things are looking good.
However, when I try to communicate with the SOAP server of a company we're
working with, it fails. They have had their server up and working for quite
a while, with at least ten different companies using it for transactions.
Thus, I suspect either I'm doing something wrong or SOAP::Lite can't handle
their setup. They are using a WSDL, and I see in the SOAP::Lite docs that
there is limited support for WSDL -- could this be the problem?
I will list here, first, the relevant portions of their (extremely long)
WSDL; second, the error portion of the debug code from SOAP::Lite; and,
third, the Perl script I'm running. Note that I'm running this via a
browser.
<message name="ProcessingServices.SystemCheck">
<part name="MerchantID" type="xsd:string" />
<part name="MerchantPassword" type="xsd:string" />
<part name="ApplicationID" type="xsd:string" />
<part name="TestMode" type="xsd:string" />
<part name="ResultCode" type="xsd:string" />
<part name="ResultMessage" type="xsd:string" />
</message>
<operation name="SystemCheck" parameterOrder="MerchantID MerchantPassword
ApplicationID TestMode ResultCode ResultMessage">
<input message="wsdlns:ProcessingServices.SystemCheck" />
<output message="wsdlns:ProcessingServices.SystemCheckResponse" />
</operation>
+++++++++++++++++++++++++
Errors:
+++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><S
OAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Error
source: Server</faultstring>
<faultactor>http://tempuri.org/action/ProcessingServices.ACHSubmitTransactio
n#ACHSubmitTransaction
</faultactor>
<detail>
<mserror:errorInfo
xmlns:mserror="http://schemas.microsoft.com/soap-toolkit/faultdetail/error/"
><mserror:returnCode> HRESULT=0x0</mserror:returnCode>
<mserror:callStack>
<mserror:callElement>
<mserror:description>WSDLReader:Loading the WSML file into MSXML failed
HRESULT=0x80070057 - WSDLReader:XML Parser failed at linenumber 0,
lineposition 0, reason is: System error: -2146697210.
HRESULT=0x1
</mserror:description>
</mserror:callElement>
</mserror:callStack>
</mserror:errorInfo>
</detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+++++++++++++++++++++++++
Perl code:
+++++++++++++++++++++++++
#!/usr/bin/perl -w
# -- SOAP::Lite -- guide.soaplite.com -- Copyright (C) 2001 Paul
Kulchenko --
use XML::Parser;
use SOAP::Lite;
use CGI;
use LWP::Protocol::https;
print "Content-Type: text/html\n\n";
my $soap = SOAP::Lite
->uri('http://tempuri.org/action/ProcessingServices.ACHSubmitTransaction
')
->proxy('https://secure.<URL REMOVED>.WSDL');
my $result = $soap->SystemCheck("id","pw","1","0");
unless ($result->fault) {
print $result->result();
} else {
print join ', ',
$result->faultcode,
$result->faultstring,
$result->faultactor;
}
-SR
Scott Runkel
Director of Technology
503-356-9979
You can read messages from the SOAP archive, unsubscribe from SOAP, or subscribe to other
DevelopMentor lists at http://discuss.develop.com.