The SOAP 1.2 spec makes it mandatory for any XML Text field to have a
xml:lang attribute specifying the native language of the contained text,
however the SOAP error I am returning to my .NET client is missing this
attribute, causing the client to complain. The message is below:

<HttpResponse xmlns="
http://schemas.microsoft.com/2004/06/ServiceModel/Management/MessageTrace";>
<StatusCode>InternalServerError</StatusCode>
<StatusDescription>Internal Server Error</StatusDescription>
<WebHeaders>
<Transfer-Encoding>chunked</Transfer-Encoding>
<Connection>close</Connection>
<Content-Type>application/soap+xml;charset=UTF-8</Content-Type>
<Date>Wed, 17 Jan 2007 13:29:12 GMT</Date>
<Server>Apache-Coyote/1.1</Server>
</WebHeaders>
</HttpResponse>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance";>
<s:Header 
xmlns:s="http://www.w3.org/2003/05/soap-envelope";></s:Header<http://www.w3.org/2003/05/soap-envelope%22%3E%3C/s:Header>

<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Sender</soap:Value>
</soap:Code>
<soap:Reason>
*<soap:Text>Action '
http://me.com/myproject/project/Service/IMyService/GetAll' was not found for
service 
**http://172.17.100.76:8080/project/services/MyService</soap:Text*<http://172.17.100.76:8080/project/services/MyService</soap:Text>
*>*
</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>

I believe the tag above should look like

*<soap:Text xml:lang="en">*

if, for example, the following text is in English.
A cursosry look at the code seems to show this attribute can never be
present (see Soap12FaultSerializer.java writeMessage()). Is this the case?
It seems strange no-one else has encountered this, which makes me think
perhaps it's me that's missed something.

Phil B.

Reply via email to