Error in IS WS reply Encoding

I am upgrading from version 6.5 to 7.1.1 of Integration Server.

I have a serious error.

When a .NET client calls a IS webService with SOAP, the response from IS is wrongly encoded. This .NET client uses the WSDL generated in 6.5 but as I have hundreds of WS in IS I cannot regenerated them all.

I checked the response in 6.5 and 7.1 and the difference is that in the response from IS the “Content-Type:text/xml” and in 6.5 is “Content-Type:text/xml;charset=utf-8”.

Response with 7.1:

ResponseCode: 200 (OK)
Content-Length:1652
Content-Type:text/xml

<?xml version="1.0" encoding="utf-16"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ser-root:LogonResponse xmlns:ser-root="http://www.tranquilidade.pt/EAI/Logon/Logon" SOAP-ENC:root="1">
...
          <LongName xsi:type="xsd:string">Jo??o Caseiro</LongName>
          <ShortName xsi:type="xsd:string">Jo??o Caseiro</ShortName>
...
    </ser-root:LogonResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Response with 6.5:

ResponseCode: 200 (OK)
Connection:Keep-Alive
Content-Length:1652
Content-Type:text/xml;charset=utf-8

<?xml version="1.0" encoding="utf-16"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ser-root:LogonResponse xmlns:ser-root="http://www.tranquilidade.pt/EAI/Logon/Logon" SOAP-ENC:root="1">
...
          <LongName xsi:type="xsd:string">João Caseiro</LongName>
          <ShortName xsi:type="xsd:string">João Caseiro</ShortName>
...
    </ser-root:LogonResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Where do LongName and ShortName come from? Where precisely do you observe the values for those fields to note that from 6.5 they are using the expected encoding and from 7.1 they are not?

While the content-type header is a difference, I suspect that that is not where the issue lies.

LongName and ShortName originally come from an external ws reply. In both IS environment the WS is the same. But now I tried with just a Map in the flow returning “João” with an accent.

When I call the IS service from developer in both cases the response is seen ok. When I use my .NEt application or .Net WebServiceStudio it is ok with IS 6.5 and wrong with 7.1.
If I execute in browser the result is ok.

The thing is the words with accents like “João” that appear “João” in 6.5 and “Jo??o” in 7.1.

Any ideia ? As .Net is the same I think that it is strange to say that this is a problem of .Net team.

I think I was with you until you said “The thing is the words with accents like “João” that appear “João” in 6.5 and “Jo??o” in 7.1.”

Earlier, you indicate that testing with Developer and with a browser, the results look right for both 6.5 and 7.1.

I think you can try to force the content-type header to the value you see with 6.5 to see if that is the real difference. I’m not sure exactly where to do that though.

I checked with a Java WS Client and obtained more information.

With this client if I define encoding=UTF-8 it also has problems. If I define encoding=iso-8859-1 it returns the values ok.