Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Mitch am 24.10.11 - 13:06:17

Titel: WSDL importieren: Inhalt ist im Prolog nicht zulässig
Beitrag von: Mitch am 24.10.11 - 13:06:17
Hallo zusammen,

ich experimentiere gerade ein wenig mit Webservices unter Notes 8.0.2 FP 6.

Dazu habe ich mir in einer Datenbank einen Webservice erstellt, das WSDL exportiert und versuche nun dieses in einer anderen Datenbank in eine Bibliothek zu importieren.

Bei "WSDL -> Import WSDL" bekomme ich aber immer die folgende Fehlermeldung:

The requested operation failed: Fatal Error: URI=file:///C:/Pfad/zur/Datei.wsdl Line 1: Inhalt ist im Prolog nicht zulässig.

Das WSDL-File lässt sich mit soapUI aber ohne Fehler einlesen.

Der Webservice enthält nur eine Test-Klasse mit einer Funktion:
Code
Class Test
	Function Hello(strName As String) As String
		Hello = "Hallo " & strName
	End Function
End Class
(Ich habe es auch schonmal ohne die Funktion bzw. mit der Funktion als "Public" versucht, gleiches Ergebnis)

Das generierte WSDL sieht aus wie folgt:
Code
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:DefaultNamespace" 
					xmlns="http://schemas.xmlsoap.org/wsdl/" 
					xmlns:apachesoap="http://xml.apache.org/xml-soap" 
					xmlns:impl="urn:DefaultNamespace" 
					xmlns:intf="urn:DefaultNamespace" 
					xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
					xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
					xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
					xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:message name="HELLOResponse">
  <wsdl:part name="HELLOReturn" type="xsd:string"/>
 </wsdl:message>
 <wsdl:message name="HELLORequest">
  <wsdl:part name="STRNAME" type="xsd:string"/>
 </wsdl:message>
 <wsdl:portType name="Test">
  <wsdl:operation name="HELLO" parameterOrder="STRNAME">
   <wsdl:input message="intf:HELLORequest" name="HELLORequest"/>
   <wsdl:output message="intf:HELLOResponse" name="HELLOResponse"/>
  </wsdl:operation>
 </wsdl:portType>
 <wsdl:binding name="DominoSoapBinding" type="intf:Test">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <wsdl:operation name="HELLO">
   <wsdlsoap:operation soapAction=""/>
   <wsdl:input name="HELLORequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:DefaultNamespace" use="encoded"/>
   </wsdl:input>
   <wsdl:output name="HELLOResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:DefaultNamespace" use="encoded"/>
   </wsdl:output>
  </wsdl:operation>
 </wsdl:binding>
 <wsdl:service name="TestService">
  <wsdl:port binding="intf:DominoSoapBinding" name="Domino">
   <wsdlsoap:address location="http://localhost"/>
  </wsdl:port>
 </wsdl:service>
</wsdl:definitions>
(Die Umbrüche in wsdl:definitions habe ich nur hier im Post nachgetragen damit die Foren-Breite nicht gesprengt wird, das ist eigentlich alles in einer Zeile)

Mit einer Suche nach dem Fehler in deutsch finde ich nichts was mir weiterhilft. Die englische Variante "Content is not allowed in prolog" hat mich auf einen Blogeintrag von Ben Poole (http://benpoole.com/bp.nsf/weblog/200801312207) gestoßen, dort wird das Problem auf Whitespace oder ungültige Zeichen von dem XML Prolog zurückgeführt.

So etwas finde ich aber nicht in meinem WSDL. Als Kodierung wird mir UTF-8 ohne BOM angegeben, aber auch wenn ich es in UTF-8 mit BOM umwandle erhalte ich die gleiche Meldung.

Hat jemand eine Idee woran das liegen könnte?

Beste Grüße,

Mitch
Titel: Re: WSDL importieren: Inhalt ist im Prolog nicht zulässig
Beitrag von: m3 am 24.10.11 - 13:34:23
Was sagt denn SoapUI zu dem WSDL-File?
Titel: Re: WSDL importieren: Inhalt ist im Prolog nicht zulässig
Beitrag von: Mitch am 24.10.11 - 13:40:19
Hallo Martin,

soapUI öffnet es ohne Probleme.

Ich habe aber jetzt den Fehler gefunden.

Ärgerlich.

Ich hatte die WSDL-Datei in einem Ordner mit einem "#"-Zeichen im Namen liegen gehabt. Damit kommt der Import unter Notes nicht klar. Lege ich sie in einen "normal benannten" Ordner, dann klappt es.  ::)

Ich sollte mir Ordner mit Sonderzeichen abgewöhnen. Damit hatte ich schonmal viel Freude. Schade, ich nutze das so gerne um mir die Ordner "nach oben zu zwingen"...

Gruß,

Mitch
Titel: Re: WSDL importieren: Inhalt ist im Prolog nicht zulässig
Beitrag von: m3 am 24.10.11 - 14:44:20
Klassiker. Nicht aergern. Da muss jeder mal reintappen :)