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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.