Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Delphi 7] Probleem met importeren WSDL van WCF webservice *

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zit met het volgende probleem. We hebben een Delphi 7 app die gebruik maakt van een webservice geschreven in C# (.NET 2.0). Dit werkt allemaal als een zonnetje.
Nu willen we deze webservice gaan uitbreiden en omzetten naar WCF (aka Indigo).
Nu lopen we alsmaar tegen het probleem aan dat de wsdl niet is te importeren in Delpi van deze WCF webservice. De foutmelding die we krijgen is:
---------------------------
Error
---------------------------
XML document must have a top level element.

Line: 0

---------------------------
OK
---------------------------

Zelfs met de simpelste WCF webservice (Hello world) gaat het fout.
Via Google is niks te vinden, of ik gebruik de verkeerde zoektermen....

Heeft iemand een idee hoe we dit aan de praat zouden kunnen krijgen?

[ Voor 29% gewijzigd door Verwijderd op 23-07-2007 11:19 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Krijg je een foutmelding(en)? Zo ja, welke? Heb je al gezocht? Wat heb je geprobeerd?
Ik wijs je graag even op onze Programming Beleid Quickstart (ik zie namelijk dat je 'nieuw' bent hier) en verzoek je vriendelijk je topicstart aan te vullen ( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif ) met de ontbrekende gegevens ;)

Dan krijg je van mij alvast een gratis titlefix :Y)

delphi 7 + WCF webservice >> [Delphi 7] Probleem met importeren WSDL van WCF webservice

edit:

Post de WSDL eens?

[ Voor 24% gewijzigd door RobIII op 23-07-2007 11:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Dit is de wsdl die ik wil importeren:

<?xml version="1.0" encoding="utf-8"?><wsdl:definitions name="HelloWorlService" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:i0="http://www.tempuri.org" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"><wsdl:import namespace="http://www.tempuri.org" location="http://localhost:8080/?wsdl=wsdl0"/><wsdl:types/><wsdl:binding name="BasicHttpBinding_IHelloWorld" type="i0:IHelloWorld"><soap:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="HelloWorld"><soap:operation soapAction="http://www.tempuri.org/IHelloWorld/HelloWorld" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="HelloWorlService"><wsdl:port name="BasicHttpBinding_IHelloWorld" binding="tns:BasicHttpBinding_IHelloWorld"><soap:address location="http://localhost:8080/IHelloWorldService"/></wsdl:port></wsdl:service></wsdl:definitions>

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Je moet het resultaat inlezen als tekst, want WFC geeft namelijk meerdere WSDL documenten terug . WFC is gebaseerd op webservices, maar gaan een stuk verder. WFC heeft ook support voor events en dergelijke. Via zo'n event kan de service de voortgang van bijv. een import process doorgeven.

Vervolgens plaats je het resultaat tussen een '<root>' en '</root>' node tekst. Pas daarna kun je de WSDL als een xml bestand inlezen.

Maar als de webservice al werkt, waarom zou je dan het werk van het omzetten naar WFC op je nemen? Maar waarom gebruik je anders niet gewoon de svcutil welke met .NET 3.0 (3.5) wordt meegeleverd. Deze levert welliswaar c# of vb code, maar die kun je vast wel eenvoudig omzetten naar delphi.

p.s. WPF (Avalon), WCF (Indigo), Workflow Foundation en Cardspace zijn minimaal .NET 3.0 en niet .NET 2.0.

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Wat bedoel je met "inlezen als text"?