Good morning--
I'm a reasonably experienced Perl programmer, but new to accessing SOAP methods. Specifically, I'm trying to pull out the proper parameters from a customer-supplied WSDL file, and determine the arguments to supply to a SOAP::Lite call, as follows:
In my subroutine to execute a SOAP method, supplying the method name (StartTransaction) and arguments, I use something like: (see below for WSDL source)
my $func = shift @_;
$soap = SOAP::Lite
-> uri('urn:company-com:gateway:v1/ITokenServiceContract/')
-> proxy('http://xxxxx.test.hatchlab.fr/201303')
-> $func(@_);
------------------------------------------
The above executes, but produces an error in the SOAP-Lite debug log:
"IIS 7.5 Detailed Error - 405.0 - Method Not Allowed"
...probably because the uri and proxy fields above are not correct, therefore I'm probably not getting to the SOAP dispatcher. Am I interpreting the WSDL correctly to set URI and PROXY? (WSDL port and binding excerpt below)
THANKS!
Casey
ps: cross-posted without reply on PerlGuru.com
-------------------------------------------
WSDL excerpts
PORT:
<wsdl:portType name="ITokenServiceContract">
<wsdl:operation name="StartTransaction">
<wsdl:input wsaw:Action="urn:company-com:gateway:v1/ITokenServiceContr
+act/StartTransaction"
message="tns:ITokenServiceContract_StartTransaction_InputMessage"/>
<wsdl:output wsaw:Action="urn:company-com:gateway:v1/ITokenServiceCont
+ract/StartTransactionResponse"
message="tns:ITokenServiceContract_StartTransaction_OutputMessage"/>
</wsdl:operation>
</wsdl:portType>
BINDING:
<wsdl:binding name="BasicHttpBinding_ITokenServiceContract" type="tns:
+ITokenServiceContract">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="StartTransaction">
<soap:operation soapAction="urn:company-com:gateway:v1/ITokenServiceCo
+ntract/StartTransaction"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
SERVICE:
<wsdl:service name="TokenService">
<wsdl:port name="BasicHttpBinding_ITokenServiceContract"
binding="tns:BasicHttpBinding_ITokenServiceContract">
<soap:address location="http://xxxxx.test.hatchlab.fr/201303/services/
+TokenService.svc"/>
</wsdl:port>
</wsdl:service>
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.