2009-06-02 4 views
0

Wir haben eine App, die HttpWebBrokerBridge verwendet, es funktioniert gut in Delphi2006, aber wenn ich Delphi2009 neu kompilieren bekomme ich EDOMParserError Ausnahme mit der Meldung "XML Dokument muss haben ein Top-Level-Element ".Delphi 2009: "XML-Dokument muss ein Element der obersten Ebene haben" -Fehler bei der Verwendung von TIdHttpWebBrokerBridge

Ich habe keine Hinweise, was diesen Fehler verursacht.

Irgendwelche Hinweise, was ich tun soll?

Sandeep

+0

Bei der Verfolgung von HttpWebBrokerBridge bekomme ich eine Ausnahme in der Methode DoCommanGet in Zeile lWebModule.DispatchAction (LRequest, LResponse) –

Antwort

1

Siehe How to build stand-alone SOAP web services using Delphi?

Insbesondere

Menschen in Indy 10 and IdHTTPWebBrokerBridge with CBuilder 2009 geschrieben modifizierte Version. Für ist beispielsweise IdHTTPWebBrokerBridge.pas von Jochanan van der Niet.

Nach Robert Petek,

I verwendet Delphi 2009 mit Indy 10 und modifizierte IdHTTPWebBrokerBridge.pas ein Bit. Es sieht aus, das Problem ist in der TIdHTTPAppRequest.GetStringVariable Funktion, in der Content-Eigenschaft ist mit FRequestInfo.UnparsedParams gefüllt. Dies ist leer, wenn es einen POST-Befehl erhält. Ich habe den Code debugged und sah die Inhalt ist in der FRequestInfo.PostStream.

Versuchen das Ergebnis für den Inhalt Eigenschaft auf den PostStream Inhalt zu setzen, wenn FRequestInfo.CommandType hcPOST ist. Sie müssen auch den Ergebniswert für die Eigenschaft ContentLength korrigieren. Es hat für mich funktioniert.

1

Stellen Sie sicher, dass Sie den neuesten 10.5.5 Schnappschuss von Indy 10 von SVN Tiburon Branch verwenden. Änderungen an TIdCustomHTTPServer und TIdHTTPWebBrokerBridge wurden vor einiger Zeit in diese Codebase zusammengeführt.