用 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>
1万+

被折叠的 条评论
为什么被折叠?



