Results 1 to 3 of 3

Thread: Mijn tweede SOAP ervaring; kan procedure of url niet vinden

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    Mijn tweede SOAP ervaring; kan procedure of url niet vinden

    Ben al aardig bezig om onze applicatie te integreren met het ketenregister. Deze is opgebouwd in meerdere fases (berichten). Fase 1 en 2 werken goed. Fase 3 is het aanvragen van een inspectie. Dit werkt niet met de WSDL, die fase 1 en 2 gebruiken. Ik heb dus een nieuwe import uitgevoerd. Maar deze ziet er iets anders uit. Bij de inplementation staat een definitie van een class, wat mij op zich vreemd vind. Ik snap dan ook niet hoe ik de functie moet gaan aanroepen. Als ik die class (KRIRPortTypeImpl) wilt initaliseren, wordt die niet gevonden. Maar hoe stuur ik dan mijn request naar de webservices?
    In mijn andere WSDL import is een functie aangemaakt: GetKREType. Om 'slim'te zijn heb ik die functie opgepakt en in mijn kri.pas (WSDL import) geplaatst, alsmede de aanpassing van de WSDL, service en port (deze gegevens heb ik gecheckt):
    Delphi Code:
    1. function GetKRIRPortType(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): KRIRPortType;
    2. const
    3.   defWSDL = 'https://acclongexport.bkd.eu/ws/kri.php?wsdl';
    4.   defURL  = 'https://acclongexport.bkd.eu/ws/kri.php';
    5.   defSvc  = 'KetenRegisterInspection';
    6.   defPrt  = 'InspectionPort';
    7. var
    8.   RIO: THTTPRIO;
    9. begin
    10.   Result := nil;
    11.   if (Addr = '') then
    12.   begin
    13.     if UseWSDL then
    14.       Addr := defWSDL
    15.     else
    16.       Addr := defURL;
    17.   end;
    18.   if HTTPRIO = nil then
    19.     RIO := THTTPRIO.Create(nil)
    20.   else
    21.     RIO := HTTPRIO;
    22.   try
    23.     Result := (RIO as KRIRPortType);
    24.     if UseWSDL then
    25.     begin
    26.       RIO.WSDLLocation := Addr;
    27.       RIO.Service := defSvc;
    28.       RIO.Port := defPrt;
    29.     end else
    30.       RIO.URL := Addr;
    31.   finally
    32.     if (Result = nil) and (HTTPRIO = nil) then
    33.       RIO.Free;
    34.   end;
    35. end;
    Maar ik blijf de melding krijgen:
    ...raised exception class ESOAPHTTPException with message 'Unable to retrieve the URL endpoint for Service/Port 'KetenRegisterInspection'/'InspectionPort' from WSDL 'https://acclongexport.bkd.eu/ws/kri.php?wsdl''.
    Als ik kijk naar mijn vorige WSDL, moet alles goed staan. Als ik niet met WSDL inlog, maar op URL, geeft deze de melding:
    ...raised exception class ERemotableException with message 'Procedure 'Inspection' not present'.
    Maar ik moet wel procedure Inspection (volgens de WSDL import) gebruiken om mijn antwoord te krijgen.

    Ik weet niet waar ik moet gaan zoeken. Kan ik gebruik maken van mijn zojuist gekopieerde en aangepaste functie, of moet ik bij deze WSDL op een andere manier inloggen?

    PS: omdat 300k aan dfm en pas bestanden gezipped nog te groot is, heb ik een wetransfer link aangemaakt van mijn demo.
    Delphi is great. Lazarus is more powerfull

  2. #2
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Schiet mij maar (figuurlijk) lek. Ik heb een WSDL import uitgevoerd met XE7 en die WERKT ZOALS HET MOET.

    Waar zit dan het verschil?
    Delphi is great. Lazarus is more powerfull

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Delphi is great. Lazarus is more powerfull

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •