UTF-8-codierten String in REST-WebService mit Apache CXF
Ich bin Einstellung, die eine REST-Web-Service auf einer 2,5-Web-Anwendung auf Tomcat 6 verwenden von CXF 3.0.2.
Der webservice erhält eine POST-Anforderung mit keine Parameter und gibt ein JSON-String mit internationalen Zeichen (z.B. é, è, à, ...).
Das problem ist, dass die aufrufende Anwendung scheint zu erhalten, die Zeichenkette nicht in UTF-8 codiert.
Ich habe versucht, mit SoapUI aber ähnliches problem mit der "RAW View" (die "JSON view" scheint OK).
Ich weiß wirklich nicht, was das problem sein könnte.
In der Tat, ich weiß nicht, ob die aufrufende app ist nicht zu Lesen, die in UTF-8 oder CXF sendet ein nicht UTF-8-codierte Antwort.
Java REST Web-Service :
package test; @Path("/TestService") @Consumes(MediaType.APPLICATION_JSON) @Produziert(MediaType.APPLICATION_JSON + ";charset=UTF-8") public class TestService { @Path("/indicateurs") @POST public String indicateurs() { return "iiérrràr_îttt"; } }
cxf-servlet.xml :
lt;bean id="testService" class=" - test.TestService"/> <jaxrs:server-id="testRestService" Adresse="/TestService"> <jaxrs:serviceBeans> <ref bean="testService"/> </jaxrs:serviceBeans> <jaxrs:providers> <bean class="org.apache.cxf.jaxrs.Anbieter.json.JSONProvider"> <property name="dropRootElement" value="true" /> <property name="supportUnwrapped" value="true" /> </Bohne> </jaxrs:providers> </jaxrs:server - >
SoapUI JSON View :
iiérrràr_îttt
SoapUI RAW-Ansicht :
HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Datum: Tue, 09 Dec 2014 10:54:52 GMT Content-Type: application/json;charset=UTF-8 Transfer-Encoding: chunked Anschluss: schließen iiérrrà r_îttt
- Der Produzent sieht ok, aber was ist Ihre Berufung-code, fehlschlägt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich es geschafft, zu finden das Problem.
Als "luuksen", sagte der Produzent war OK.
Den aufrufenden code ist eine Java-middleware mit dem json-smart Bibliothek, mit hat ein Problem mit UTF-8 : https://code.google.com/p/json-smart/issues/detail?id=48.