cxf 用 jackson 似乎好太多了

用  cxf 默认的 jettsion 方式转 json,有莫名的许多问题,比如一个空的列表,不输出,导致 easyUi  的 dataGrid 找不到 rows 返回值,出现错误。

折腾了许久,最后换成了 jackson2.3.3 ,终于输出了空列表。

 

{"ret":0,"err":0,"msg":null,"rows":[],"total":0}

 

以下是配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-2.5.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
		http://www.springframework.org/schema/util 
		http://www.springframework.org/schema/util/spring-util-2.5.xsd
		http://cxf.apache.org/jaxrs
		http://cxf.apache.org/schemas/jaxrs.xsd">
		
	<import resource="classpath*:META-INF/cxf/cxf.xml" />
	<import resource="classpath*:META-INF/cxf/cxf-servlet.xml" />

   <util:list id="jsonKeys">
    	<value>datas</value>  
    	<value>rows</value>  
    	<value>details</value>  
    	<value>pubtaxbl2pf</value>
    </util:list>

    <util:list id="jsonTypes">
        <value>application/json</value>
        <value>application/jackson</value>
<!--         <value>application/jettison</value> -->
    </util:list>
    <bean id="jacksonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider">
<!--         <property name="serializeAsArray" value="true"/> -->
<!--         <property name="arrayKeys" ref="jsonKeys"/> -->
<!--         <property name="produceMediaTypes" ref="jsonTypes"/> -->
<!--         <property name="consumeMediaTypes" ref="jsonTypes"/> -->
<!--         <property name="ignoreNamespaces" value="true"/> -->
<!--         <property name="dropRootElement" value="true"/> -->
<!--         <property name="ignoreMixedContent" value="true"/> -->
<!--         <property name="attributesToElements" value="true"/> -->
<!--         <property name="writeNullAsString" value="false"/> -->
<!--         <property name="readNullAsString" value="false"/> -->
<!--         <property name="writeXsiType" value="false"/> -->
<!--         <property name="readXsiType" value="false"/> -->
<!--         <property name="ignoreEmptyArrayValues" value="false"/> -->
    	
    </bean>

<!--     <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
        <property name="serializeAsArray" value="true"/>
        <property name="arrayKeys" ref="jsonKeys"/>
        <property name="produceMediaTypes" ref="jsonTypes"/>
        <property name="consumeMediaTypes" ref="jsonTypes"/>
        <property name="ignoreNamespaces" value="true"/>
        <property name="dropRootElement" value="true"/>
        <property name="ignoreMixedContent" value="true"/>
        <property name="attributesToElements" value="true"/>
        <property name="writeNullAsString" value="false"/>
        <property name="readNullAsString" value="false"/>
        <property name="writeXsiType" value="false"/>
        <property name="readXsiType" value="false"/>
        <property name="ignoreEmptyArrayValues" value="false"/>
     </bean>
 -->
    <jaxrs:server id="restApiResource" address="/">
        <jaxrs:serviceBeans>
		<ref bean="taskServiceResource"/>
		<ref bean="pubTaxbl1pfResource"/>
        </jaxrs:serviceBeans>
        <jaxrs:providers>
            <ref bean="jacksonProvider"/>
        </jaxrs:providers>
        <jaxrs:extensionMappings>  
            <entry key="json" value="application/json"/>  
<!--             <entry key="xml" value="application/xml"/>   -->
        </jaxrs:extensionMappings>  
    </jaxrs:server>	

</beans>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值