2010-07-23 4 views
1

J'ai créé le serveur simple savon en utilisant php, le WSDL utilisé est à: http://fromyourdesign.com/webapp/wsdl/fromyourdesign.wsdlSavon Réponse question Namespace

Réponse im obtenir a un espace de noms ne correspondent pas pour la balise LoginResponse:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://roomplanner.icovia.com/pci"> 
    <SOAP-ENV:Body> 
    <ns1:LoginResponse xsi:type="http://roomplanner.icovia.com/pci"> <<<==== This shoud be <LoginResponse xmlns="http://roomplanner.icovia.com/pci"> 
     <LoginResult> 
     <register> 
      <customer>Rajat Teotia</customer> 
     </register> 
     </LoginResult> 
    </ns1:LoginResponse> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

code pour le simple serveur de savon est:

<?php 

class Login { 
public function Login($username, $password) { 
    $ns = 'http://roomplanner.icovia.com/pci'; 
    $LoginResponse = new StdClass(); 
    $LoginResponse->LoginResult->register->customer = 'Rajat Teotia'; 
    return new SoapVar ($LoginResponse, SOAP_ENC_OBJECT, $ns); 
} 
} 
$fydWsdl = "http://www.fromyourdesign.com/webapp/wsdl/fromyourdesign.wsdl"; 
ini_set ("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache 
$server = new SoapServer ($fydWsdl); 
$server->setClass ("Login"); 
$server->handle(); 
?> 

Ce qui peut être fait pour résoudre ce problème. Merci d'avance.

Rajat

+1

namespace est le 4ème paramètre, pas le 3ème – Wrikken

Répondre

2

Semble, vous avez une mauvaise liste des paramètres dans votre code. L'espace de nom devrait être le quatrième paramètre, pas le troisième.

SoapVar :: SoapVar (string $ data, chaîne $ encoding [, chaîne nom_type $ [, string type_namespace de $ [, string node_name de $ [, string node_namespace $]]]])

Salutations Julian