Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webservice Aufruf debuggen? (https://www.delphipraxis.net/125643-webservice-aufruf-debuggen.html)

Phoenix 9. Dez 2008 14:30


Webservice Aufruf debuggen?
 
Hi.

Ich hab da ein mittelgroßes Problem.
Ich habe einen Webservice (namentlich die Microsoft SQL Server Reporting Services), den ich von einer Delphi 2009 Applikation aus Abfrage. Das ganze funktioniert einwandfrei.

Will ich das nun von Delphi 6 aus machen, so schmeisst mir der Webservice eine Exception dass ein Parameter nicht gefüllt oder NULL sei.

Folgendes schickt Delphi 6:
XML-Code:
<?xml version="1.0"?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
 
  <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <NS1:ListChildren xmlns:NS1="http://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices">
      <Item xsi:type="xsd:string">/</Item>
      <Recursive xsi:type="xsd:boolean">true</Recursive>
    </NS1:ListChildren>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Der Webserver meint, der Parameter 'Item' (also das, wo der Slash drinsteht), sei nicht da.

So sieht der Aufruf aus:
Delphi-Quellcode:
catitems := (HttpRio1 as ReportingService2005Soap).ListChildren('/', true);
Und ich würde nun gerne mal beim 2009er das Soap angucken. Das läuft ja einwandfrei durch und ich würd mir gern mal den Unterschied angucken. Nur weiss ich nicht, wie ich dort da dran komme.

Bzw. hat wer direkt eine Idee die zur Lösung führen könnte?

Phoenix 9. Dez 2008 15:51

Re: Webservice Aufruf debuggen?
 
Okay.. ich hab was gefunden. Im Entwickler-Forum stand folgendes:
Zitat:

Zitat von Christopher Stärkel
Antworte mir mal selbst:

Die zusätzliche Zeile
InvRegistry.RegisterInvokeOptions(TypeInfo(MyServi ceSoap), ioDocument);
im INITIALIZATION Teil der aus dem wsdl erzeugten Proxy Unit bewirkt, daß Delphi auch Parameter an Funktionen und Methoden von VS 2005 Webservices übergeben kann

Zumindest bekomm ich jetzt mal die Listeneinträge... Mal schauen wo es als nächstes hängt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz