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>

In reply to SOAP Lite WSDL Question by casey0999

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.