`

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>

 

分享到:
评论

相关推荐

    CXF 使用实例集成

    【CXF 使用实例集成】 Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。这个集成实例主要展示了如何使用CXF来创建和消费Web服务,包括设置输入和输出拦截器、用户验证以及文件上传等功能。让我们深入...

    cxf使用中编码问题

    "cxf使用中编码问题"这个主题聚焦在如何在CXF环境中解决与GBK等特定编码相关的困扰。 首先,我们需要理解编码的本质。在计算机系统中,字符编码是用来表示文本的一种方式,如ASCII、GBK、UTF-8等。GBK是中国大陆...

    cxf多数据源配置

    这个描述意味着我们正在使用CXF来聚合多个Web服务,实现一个集中的服务入口,从而简化管理和维护。在企业级应用中,可能有多个独立的Web服务,每个服务都连接到自己的数据库或其他数据源。通过整合这些服务,我们...

    使用CXF和camel-cxf调用webservice

    3. **调用服务**:一旦客户端准备好,就可以通过CXF客户端API来调用服务方法,传递必要的参数并接收响应。 Apache Camel 是一个强大的集成框架,它提供了一种声明式的方式来定义和路由消息流。camel-cxf是Camel的一...

    cxf 3.1.1 jar包

    CXF(CXF: The Apache CXF project is an open source services framework)是一个开源的Java服务框架,它允许开发者创建和消费各种Web服务。CXF的名字来源于"Code first"和"XML first",代表着它支持从Java代码或者...

    cxf的jar包

    7. **国际化支持**:CXF支持多语言环境,能够处理不同地区的字符编码问题。 8. **插件体系**:CXF拥有丰富的插件体系,开发者可以扩展其功能来满足特定需求。 在“lib”目录下的文件,很可能是CXF框架的各种依赖库...

    用cxf开发webservice

    在使用CXF开发Web服务时,首先需要进行一些准备工作。通常,你需要从Apache CXF官方网站获取最新版本的库文件,包括CXF的核心库和其他相关的依赖JAR包。然后,在你的项目中配置这些库,以便CXF能正常运行。 配置...

    Cxf转换器示例

    【Cxf转换器示例】是一个关于Web服务技术的实践项目,主要聚焦于Apache CXF框架中的转换器(Converter)功能。Apache CXF是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)和RESTful应用程序。CXF不仅支持...

    apache-cxf-2.5.2

    10. **国际化与本地化**:CXF支持多语言环境,使服务能够适应不同地区的用户需求。 在"apache-cxf-2.5.2"版本中,可能包含以下文件和目录: - `bin`:存放可执行脚本,如启动和停止服务器的脚本。 - `lib`:包含...

    cxf-3.1.5 和 cxf-3.3.13 JAVA7和JAVA8对应CXF资源

    WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。最后终于搞到手,上传上来分享给大家。 jdk版本 CXF版本 java 9及以上 3.3.x java 8 3.x java 7 2.2x --- 3.2之前版本 java 6 3.1 ...

    spring整合cxf全jar包 一个都不能少和一个都不能多

    "spring整合cxf全jar包 一个都不能少和一个都不能多"这个主题表明了在配置Spring和CXF时,正确选择和包含所有必要的JAR文件至关重要,因为缺少任何一个都可能导致项目运行失败或者功能缺失。 首先,让我们深入理解...

    cxf源代码,样例,cxfdemo

    【标题】"cxf源代码,样例,cxfdemo" 涉及的主要知识点是Apache CXF框架的使用,特别是其在服务端开发中的应用。Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP和RESTful服务。CXF...

    CXF使用EndpointImpl发布WebService加入拦截器

    在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。在Web服务开发中,拦截器扮演着至关重要的角色,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。本篇文章将深入探讨...

    Spring CXF Restful 实例

    在IT行业中,Spring CXF是一个广泛使用的开源框架,它整合了Spring框架的功能和Apache CXF的服务堆栈,为开发人员提供了构建和实现Web服务的强大工具。在这个“Spring CXF Restful实例”中,我们将深入探讨如何利用...

    cxf客户端所需jar包-4个

    标题 "cxf客户端所需jar包-4个" 暗示了这四个JAR文件是Apache CXF框架中用于构建客户端应用程序的基本组件,使得开发者能够方便地调用Web服务。Apache CXF是一个开源的Java框架,它允许创建和消费Web服务,支持多种...

    apache-cxf-2.7.7

    CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载

    apache-cxf-3.5.0.zip

    - **samples**: 提供了各种示例项目,展示如何使用CXF来构建Web服务,是初学者学习CXF的好资源。 - **lib**: 存放CXF框架及其依赖库的JAR文件,这些库在运行CXF应用时是必不可少的。 - **etc**: 通常包含配置文件...

    cxf与axis2区别

    在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者更好地选择适合自己的框架。 架构设计 Axis2是一个对Axis进行了彻底的重写的一个新项目,它使用了新的模块化架构,更加方便于功能性的扩展等等。Apache ...

    cxf所需jar包

    然而,由于这是一个非标准的文件名,它不太可能是CXF框架的一部分。在实际项目中,我们更期望看到的是诸如“cxf-core.jar”、“cxf-rt-frontend-jaxws.jar”这样的文件,这些才是CXF框架的关键组件。 "libs"目录很...

    cxf框架包 apache-cxf-3.4.3.tar.gz

    Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。...在本案例中,我们讨论的是"apache-cxf-3.4.3.tar.gz",这是...通过深入学习和熟练使用CXF,你可以提高开发效率,构建高质量、可维护的分布式系统。

Global site tag (gtag.js) - Google Analytics