Last Request Headers
POST /code/soap/soap_header/server/ HTTP/1.1 Host: w3net.eu Connection: Keep-Alive User-Agent: PHP-SOAP/5.2.17 Content-Type: text/xml; charset=utf-8 SOAPAction: "login" Content-Length: 521
Last Request
SOAP client Error: Authentication error. SessionId not present in the header.

 

A SOAP kiterjesztés helytelen SOAP XML üzenetet gyártott le a számunkra, mert a sessionId elem nincsen minősítve névtérelőtaggal (namespace qualified). Mivel nincsen deklarálva alapértelmezett névtér feljebbi elemekben, ezért a sessionId nem tartozik semmilyen névtérhez sem. Ez azért probléma, mert a SOAP kiszolgáló a Header elemben az urn:ExampleAPI:sessionId elemet keresi, olyan pedig nincsen.
Ez valószínűleg bug a PHP SOAP kiterjesztésben, bár nem vagyok ebben biztos. A problémáról itt olvashatunk többet: Bug #40318 SOAP_ENC_OBJECT does not encode object properties with namespace. A kódot némiképp módosítani kell, a helyesen működő kód itt látható.