I'm working for a SOA architectur project and I'm implementing JAX-WS 2.0 web services in the Contract-First way under JBoss 4.2.2.GA .
The service is implemented by an EJB3.0 SLSB, the client is an EJB3.0 SFSB, both runnung in the same container.
The WS-specific java classes will be generated by JBoss 4.2.2 tool wsconsume from the wsdl file for both sites
- service and client.
The problem is, that the UTF-8 decode/encode process doesn't work correctly for german 'umlaut' contained in a string, means that string parameters still contain the UTF-8 representation of an 'umlaut' after transfered to the java target string (in the same wrong way they will be displayed on this page: p.e. MÃ¼ller , SchÃ¶ler, KÃ¤se) ...
In the wsdl file I specified
<?xml version="1.0" encoding="UTF-8"?>
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
But when I use the Eclipse Web Service Explorer instead of the JAX WS 2.0 generated Java client, then at least in the client-server direction all works correctly for the search arguments, meanwhile the search results still contain the UTF-8 representations
Meanwhile I found a workaround which works:
After receiving a message I push all 'umlaut'-candidats to the statement
correctString = new String(receivedString.getBytes("ISO8859_1"), "UTF-8");
But don't ask me why ...