Loading ...
Sorry, an error occurred while loading the content.

Re: [soaplite] get_tModelDetail

Expand Messages
  • Paul Kulchenko
    Hi, Annie! ... Probably because $key should be proper object you got from repository (or create on your side) rather than string. See following script that
    Message 1 of 2 , Jun 20, 2001
    • 0 Attachment
      Hi, Annie!

      --- aclarkdc@... wrote:
      > I call get_tModelDetail($key) and get an error back stating
      > "Element 'urn:uddi-org:api:get_tModelDetail' has incomplete
      > content.
      > Expected 'urn:uddi-org:api:tModelKey'."
      >
      > I did provide a key, but for some reason it isn't making its way
      > into my request. Any thoughts?
      Probably because $key should be proper object you got from repository
      (or create on your side) rather than string. See following script
      that does full UDDI search based on name of service. Last line (SOAP
      call) won't work in your version, but it will work in coming one.
      This script will be included as an example.

      You can also generate proper tModelKey (as well as any other
      elements) from string with:

      $tModelKey = tModelKey('UUID:0E727DB0-3E14-11D5-98BF-002035229C64')

      If you got it as the result of call:

      my $tModelKey = $bindingTemplate
      -> tModelInstanceDetails
      -> tModelInstanceInfo
      -> tModelKey
      ;

      it's already in the proper form and you don't need to do anything.

      # -- UDDI::Lite -- soaplite.com -- Copyright (C) 2001 Paul Kulchenko
      --

      use UDDI::Lite
      import => ['UDDI::Data'],
      import => ['UDDI::Lite'],
      proxy => 'http://www-3.ibm.com/services/uddi/inquiryapi'
      ;

      $\="\n"; $,=", "; # specify separators for print()

      my($serviceInfo) = grep { $_->name =~ /stock quote/i }
      find_business(name('XMethods'))
      -> businessInfos
      -> businessInfo
      -> serviceInfos
      -> serviceInfo
      ;

      print $serviceInfo->name, $serviceInfo->serviceKey;

      my $bindingTemplate = get_serviceDetail($serviceInfo->serviceKey)
      -> businessService
      -> bindingTemplates
      -> bindingTemplate
      ;

      my $accessPoint = $bindingTemplate->accessPoint->value;
      my $tModelKey = $bindingTemplate
      -> tModelInstanceDetails
      -> tModelInstanceInfo
      -> tModelKey
      ;

      print $accessPoint, $tModelKey;

      my $wsdl = get_tModelDetail($tModelKey)
      -> tModel
      -> overviewDoc
      -> overviewURL
      -> value
      ;

      print $wsdl;

      print
      SOAP::Lite->service($wsdl)->proxy($accessPoint)->getQuote('MSFT');

      Best wishes, Paul.

      __________________________________________________
      Do You Yahoo!?
      Get personalized email addresses from Yahoo! Mail
      http://personal.mail.yahoo.com/
    Your message has been successfully submitted and would be delivered to recipients shortly.