REST WebService中的8编码字符串与Apache CXF

我正在使用CXF 3.0.2在Tomcat 6上的2.5 Web应用程序上设置REST Web服务。 webservice收到一个不带参数的POST请求,并返回一个带有国际字符的JSON字符串(如é,è,à,...)。

问题在于调用应用程序似乎收到了未使用UTF-8编码的字符串。 我尝试过使用SoapUI,但与“RAW视图”(“JSON视图”似乎可以)类似的问题。

我真的不知道可能是什么问题。 实际上,我不知道调用的应用程序是不是以UTF-8读取,或者CXF发送的是非UTF-8编码的响应。

Java REST Web服务:

    package test;

    @Path("/TestService")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(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" address="/TestService">
    <jaxrs:serviceBeans>
    <ref bean="testService"/>
    </jaxrs:serviceBeans>
    <jaxrs:providers>
    <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
    <property name="dropRootElement" value="true" />
    <property name="supportUnwrapped" value="true" />
    </bean>
    </jaxrs:providers>
    </jaxrs:server>

SoapUI JSON视图:

    iiérrràr_îttt

SoapUI RAW视图:

 
    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    Date: Tue, 09 Dec 2014 10:54:52 GMT
    Content-Type: application/json;charset=UTF-8
    Transfer-Encoding: chunked
    Connection: close

    iiérrràr_îttt

我设法找到问题。

正如'卢克森'所说的,制片人还行。

调用代码是使用json-smart库的Java中间件,在UTF-8中存在一个问题:https://code.google.com/p/json-smart/issues/detail?id=48。

链接地址: http://www.djcxy.com/p/45621.html

上一篇: 8 encoded String in REST WebService with Apache CXF

下一篇: Handling custom error response in JAX