Zum Inhalt springen

Webservice WSDL meldet beim Testen undefined namespace prefix:soap


Empfohlene Beiträge

Hallo,

ich schreibe in meinem Praktikum im Moment ein Webservice, in dem ich durch eine php-Datei die Systemzeit auslesen lasse.

Dazu habe ich eine WSDL-Datei geschrieben (ich bin darin absoluter Laie).

Nun soll ich das ganze mit SoapUI testen. Leider funktioniert es nicht.

Wenn ich die WSDL-Datei einbinden möchte bekomme ich den Fehler: use of undefined Namespace prefix: Soap

Vielleicht kann mir jemand sagen welche Fehler ich in der WSDL-Datei gemacht habe, oder ob ich etwas vergessen habe.

Hier der Code(das Projekt ist nur für mich zur Übung, also wird für den Papierkorb geschrieben)

PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Unbenanntes Dokument</title>

</head>

<?php

function getClock(){

$timestamp =time();

date_default_timezone_set('Europe/Berlin');

$zeit = date("H:i:s", $timestamp);

echo $zeit;

}

/*SOAP-Schnittstelle*/

/*SOAP ist eine XML-Anwendung*/

/*SOAP => Simple Objekt Access Protocol*/

$SoapProvider = new SoapServer("clockService.wsdl");

/*SoapServer->addFunction() — Fügt eine oder mehrere Funktionen hinzu, die SOAP-Anfragen bearbeiten sollen*/

$SoapProvider -> addFunction("getClock");

/*SoapServer->handle() — Verarbeitet SOAP-Anfragen*/

$SoapProvider -> handle();

?>

<body>

</body>

</html>

Dazu geschriebene WSDL-Datei

<?xml version="1.0" encoding="utf-8"?>

<definition name = 'ClockService'>

/*message=>wie eine Funktion zu betrachten, part zeit die Datentypen der in .php verwendeten Funktionen*/

/*beschreibt Nachrichten die zwischen Client und Server ausgetauscht werden*/

/*Parameter werden im part-Bereich angegeben*/

<message name = 'getClock'>

/*name => Name der Variablen, type=> Datentyp der Variablen*/

<part name ='zeit' type = 'string' />

</message>

/*Methoden die der Webdienst anbietet werden hier beschrieben . Für jede Methode ein operation*/

/*Request-Resonse => Server bekommt Anfrage und verschickt Antwort*/

<portType name='getClockPort'>

<operation name='getClock'>

<input message = 'tns:getClock'/>

<output message = 'tns:getClock'/>

</operation>

</portType>

/*-----------------konkrete Definition-------*/

/*Binding => legt Transportoption für Funktionen der PHP fest*/

/*enthält Angaben über Transportprotokoll und Format in den die Daten ausgetauscht werden*/

<binding name= 'getClockBinding' type = 'tns:getClockPort'>

<option name ='getClock'>

<soap:operation soapAction=''/>

<output>

/*Format mit der die Nachricht versandt wird*/

<soap:body use ='literal'/>

</output>

<input>

<soap:body use ='literal'/>

</input>

</option>

</binding>

/*Service=>Möglichkeit den Dienst aufzurufen*/

/*Endpunkt über den der Dienst erreicht werden kann*/

<service name= 'ClockService'>

<port name = 'getClockPort' binding = 'getClockBinding' >

/*Endpunkt*/

<soap:adress location ='http://127.0.0.1:82/clockService.wsdl'>

</port>

</service>

</definition>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dazu geschriebene WSDL-Datei

<?xml version="1.0" encoding="utf-8"?>

<definition name = 'ClockService'>

Hi,

die Fehlermeldung gibt dir an sich schon den richtigen Tipp. Du definierst die namespaces nicht. Schau dir mal die Basics von WSDL an. Gibt sicher reichlich Links, am besten mal googlen.

LG Jimbo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...