Zum Inhalt springen

NuSOAP Webserver Programmierung


Empfohlene Beiträge

Hallo Community :)

Ich habe ein Problem bei der Übergabe eines Parameters und bräuchte dringend Hilfe.

Ich verwende NuSOAP 0.9.5 und bei der Übergabe von Selbstdefinierten Typen habe ich immer Probleme :(

Hier der Aufruf vom PHP aus:

$this->m_service = new nusoap_client($sEndpoint, 'wsdl',$proxyhost, $proxyport, $proxyusername, $proxypassword);

$this->m_result = $this->m_service->call('getServiceProvider', array('serviceProviderID' => 'GER00020060042540116',

'inputSPServiceAccess' => array('addAddress' => TRUE, 'addDescriptions'=>FALSE, 'addFeatures'=>FALSE,'addDataClassAttributes'=>FALSE,'addMultimedia'=>FALSE,'addMultimediaURLS'=>FALSE,'addLocations'=>FALSE,'imageWidth' => 320, 'imageHeight' => 160,'addExternalOnlineServices'=>FALSE),

'languageCode' => $this->m_languageCode, 'sessionID' => $this->m_sessionID ));

Bei der Übergabe des 2. Parameters habe ich Probleme. Andere Funktionen, die nur mit den Standarddefinierten Typen aufgerufen werden, funktionieren problemlos (also Funktion die als Parameter nur String, int, Boolean usw. haben). Hier der Aufbau der Methode

<xsd:element name="getServiceProvider">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="serviceProviderID" type="xsd:string"/>

<xsd:element name="inputSPServiceAccess" type="tws:TwsInputSPServiceAccess"/>

<xsd:element name="languageCode" type="xsd:string"/>

<xsd:element name="sessionID" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="getServiceProviderResponse">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="out" type="tws:TwsServiceProvider"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

Hier der Aufbau des Typs

<complexType name="TwsInputSPServiceAccess">

<sequence>

<element name="addAddress" default="true" type="boolean"/>

<element name="addDescriptions" default="false" type="boolean"/>

<element name="addFeatures" default="false" type="boolean"/>

<element name="addDataClassAttributes" default="false" type="boolean"/>

<element name="addMultimedia" default="false" type="boolean"/>

<element name="addMultimediaURLs" default="false" type="boolean"/>

<element name="addLocations" default="false" type="boolean"/>

<element name="imageWidth" type="integer" minOccurs="0" maxOccurs="1"/>

<element name="imageHeight" type="integer" minOccurs="0" maxOccurs="1"/>

<element name="addExternalOnlineServices" default="false" type="boolean"/>

</sequence>

</complexType>

Und hier noch die letzten Zeilen der Debug-Ausgabe:

2011-05-18 14:27:26.266885 wsdl: in serializeType: got a prefixed type: TwsInputSPServiceAccess, http://tbox.ch/ws/twsbook20/io/

2011-05-18 14:27:26.266939 wsdl: in getTypeDef: type=TwsInputSPServiceAccess, ns=http://tbox.ch/ws/twsbook20/io/

2011-05-18 14:27:26.266984 wsdl: in getTypeDef: have schema for namespace http://tbox.ch/ws/twsbook20/io/

2011-05-18 14:27:26.267077 nusoap_xmlschema: <http://tbox.ch/ws/twsbook20/io/> in getTypeDef, did not find TwsInputSPServiceAccess

2011-05-18 14:27:26.267136 wsdl: in getTypeDef: did not find type TwsInputSPServiceAccess

2011-05-18 14:27:26.267189 wsdl: in serializeType: http://tbox.ch/ws/twsbook20/io/:TwsInputSPServiceAccess (TwsInputSPServiceAccess) is not a supported type.

2011-05-18 14:27:26.267259 wsdl: in serializeType: name=languageCode, type=http://www.w3.org/2001/XMLSchema:string,'>http://www.w3.org/2001/XMLSchema:string, use=literal, encodingStyle=, unqualified=qualified

value=string(2) "de"

2011-05-18 14:27:26.267332 wsdl: in serializeType: got a prefixed type: string, XML Schema

2011-05-18 14:27:26.267381 wsdl: in serializeType: type namespace indicates XML Schema or SOAP Encoding type

2011-05-18 14:27:26.267445 wsdl: in getTypeDef: type=string, ns=http://www.w3.org/2001/XMLSchema

2011-05-18 14:27:26.267497 wsdl: in getTypeDef: do not have schema for namespace XML Schema

2011-05-18 14:27:26.267544 wsdl: in serializeType: returning: <languageCode>de</languageCode>

2011-05-18 14:27:26.267624 wsdl: in serializeType: name=sessionID, type=http://www.w3.org/2001/XMLSchema:string,'>http://www.w3.org/2001/XMLSchema:string, use=literal, encodingStyle=, unqualified=qualified

value=string(36) "56d611a4-958d-4c6a-a570-de579ecac880"

2011-05-18 14:27:26.267700 wsdl: in serializeType: got a prefixed type: string, XML Schema

2011-05-18 14:27:26.267748 wsdl: in serializeType: type namespace indicates XML Schema or SOAP Encoding type

2011-05-18 14:27:26.267811 wsdl: in getTypeDef: type=string, ns=http://www.w3.org/2001/XMLSchema

2011-05-18 14:27:26.267863 wsdl: in getTypeDef: do not have schema for namespace XML Schema

2011-05-18 14:27:26.267910 wsdl: in serializeType: returning: <sessionID>56d611a4-958d-4c6a-a570-de579ecac880</sessionID>

2011-05-18 14:27:26.267962 wsdl: in serializeType: returning: <getServiceProvider xmlns="http://tbox.ch/ws/twsbook20/io/"><serviceProviderID>GER00020060042540116</serviceProviderID><languageCode>de</languageCode><sessionID>56d611a4-958d-4c6a-a570-de579ecac880</sessionID></getServiceProvider>

2011-05-18 14:27:26.268009 wsdl: serializeRPCParameters returning: <getServiceProvider xmlns="http://tbox.ch/ws/twsbook20/io/"><serviceProviderID>GER00020060042540116</serviceProviderID><languageCode>de</languageCode><sessionID>56d611a4-958d-4c6a-a570-de579ecac880</sessionID></getServiceProvider>

2011-05-18 14:27:26.268099 nusoap_client: got wsdl error: http://tbox.ch/ws/twsbook20/io/:TwsInputSPServiceAccess (TwsInputSPServiceAccess) is not a supported type.

Ich hoffe Ihr habt mein Problem verstanden und es weiß jemand eine Lösung :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Daran liegt es leider auch nicht, die WSDL-URL wird ja dem NuSOAP Client beim Aufruf als $Endpoint mitgegeben. Da andere Funktionen wie z.B. ping aufrufbar sind, kann es daran nicht liegen. Auch der Namespace sollte richtig sein. Hab leider keine Idee was es sein könnte. Es wird auch kein XML beim Request oder Response gesendet, das heißt das es vll beim Serailisieren schon fehlerhaft ist, aber ich finde leider nichts :-(

Link zu diesem Kommentar
Auf anderen Seiten teilen

nuSoap liest erst dann die Beschreibung der WSDL, wenn sie benötigt wird und auch nur den Teil, den es braucht, d.h. wenn bei einer Funktion die WSDL falsch angegeben ist, müssen die anderen nicht zwingend beeinträchtigt sein, sofern die XML valide ist (wenn die WSDL per nuSOAP generiert wird, dann ist sie valide).

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...