J'utilise WD en tant que serveur de services Web SOAP.

Quand une erreur se produit, WD renvoie bien une erreur SOAP mais il ne l'encapsule pas dans du XML. Du coup, la réponse SOAP est non valide et ne peut donc pas être lue par le client du service Web (en PHP).

En détail, voici ce que WD renvoie :

Date: Tue, 02 Mar 2010 15:30:58 GMT
Server: Apache/2.2.11 (Win32) mod_ssl/2.2.11 OpenSSL/0.9.8k PHP/5.3.0
Content-Length: 359
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml; charset=iso-8859-1

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring>erreur 1102: La propriété 'Type' est interdite sur une variable de type 'chaîne'.</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Il manque juste la ligne : <?xml version="1.0" encoding="ISO-8859-1"?> avant
<SOAP-ENV:Envelope.
Quelqu'un connait-il un autre moyen de récupérer l'erreur SOAP ?

Autre souci, dans la réponse SOAP, WD renvoie des caractères non encodés au format XML. Par exemple, il renvoie :
« Impossible d'ouvrir le fichier <C:\www\wdl\Bibliothèque.wdl>. »

Alors qu'il devrait convertir :
- les « < » en « &lt; »,
- les « > » en « &gt; »
- et les « & » en « &amp; »

Sans ça, la réponse SOAP est non valide et ne peut pas être parsée par le client.

Cordialement,
Kerfred
--