用 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 使用实例集成】 Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。这个集成实例主要展示了如何使用CXF来创建和消费Web服务,包括设置输入和输出拦截器、用户验证以及文件上传等功能。让我们深入...
"cxf使用中编码问题"这个主题聚焦在如何在CXF环境中解决与GBK等特定编码相关的困扰。 首先,我们需要理解编码的本质。在计算机系统中,字符编码是用来表示文本的一种方式,如ASCII、GBK、UTF-8等。GBK是中国大陆...
这个描述意味着我们正在使用CXF来聚合多个Web服务,实现一个集中的服务入口,从而简化管理和维护。在企业级应用中,可能有多个独立的Web服务,每个服务都连接到自己的数据库或其他数据源。通过整合这些服务,我们...
3. **调用服务**:一旦客户端准备好,就可以通过CXF客户端API来调用服务方法,传递必要的参数并接收响应。 Apache Camel 是一个强大的集成框架,它提供了一种声明式的方式来定义和路由消息流。camel-cxf是Camel的一...
CXF(CXF: The Apache CXF project is an open source services framework)是一个开源的Java服务框架,它允许开发者创建和消费各种Web服务。CXF的名字来源于"Code first"和"XML first",代表着它支持从Java代码或者...
7. **国际化支持**:CXF支持多语言环境,能够处理不同地区的字符编码问题。 8. **插件体系**:CXF拥有丰富的插件体系,开发者可以扩展其功能来满足特定需求。 在“lib”目录下的文件,很可能是CXF框架的各种依赖库...
在使用CXF开发Web服务时,首先需要进行一些准备工作。通常,你需要从Apache CXF官方网站获取最新版本的库文件,包括CXF的核心库和其他相关的依赖JAR包。然后,在你的项目中配置这些库,以便CXF能正常运行。 配置...
【CXF源码分析】 Apache CXF 是一个开源的Java框架,主要用于构建和服务导向架构(SOA)的应用程序。它提供了多种方式来实现Web服务,包括基于Java API for ...这将有助于我们更好地在实际项目中应用和维护CXF服务。
【Cxf转换器示例】是一个关于Web服务技术的实践项目,主要聚焦于Apache CXF框架中的转换器(Converter)功能。Apache CXF是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)和RESTful应用程序。CXF不仅支持...
10. **国际化与本地化**:CXF支持多语言环境,使服务能够适应不同地区的用户需求。 在"apache-cxf-2.5.2"版本中,可能包含以下文件和目录: - `bin`:存放可执行脚本,如启动和停止服务器的脚本。 - `lib`:包含...
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文件至关重要,因为缺少任何一个都可能导致项目运行失败或者功能缺失。 首先,让我们深入理解...
【标题】"cxf源代码,样例,cxfdemo" 涉及的主要知识点是Apache CXF框架的使用,特别是其在服务端开发中的应用。Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP和RESTful服务。CXF...
在IT行业中,Spring CXF是一个广泛使用的开源框架,它整合了Spring框架的功能和Apache CXF的服务堆栈,为开发人员提供了构建和实现Web服务的强大工具。在这个“Spring CXF Restful实例”中,我们将深入探讨如何利用...
在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。在Web服务开发中,拦截器扮演着至关重要的角色,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。本篇文章将深入探讨...
标题 "cxf客户端所需jar包-4个" 暗示了这四个JAR文件是Apache CXF框架中用于构建客户端应用程序的基本组件,使得开发者能够方便地调用Web服务。Apache CXF是一个开源的Java框架,它允许创建和消费Web服务,支持多种...
CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载 CXF下载
在本文中,我们将探讨CXF和Axis2框架的区别,以帮助开发者更好地选择适合自己的框架。 架构设计 Axis2是一个对Axis进行了彻底的重写的一个新项目,它使用了新的模块化架构,更加方便于功能性的扩展等等。Apache ...
- **samples**: 提供了各种示例项目,展示如何使用CXF来构建Web服务,是初学者学习CXF的好资源。 - **lib**: 存放CXF框架及其依赖库的JAR文件,这些库在运行CXF应用时是必不可少的。 - **etc**: 通常包含配置文件...
然而,由于这是一个非标准的文件名,它不太可能是CXF框架的一部分。在实际项目中,我们更期望看到的是诸如“cxf-core.jar”、“cxf-rt-frontend-jaxws.jar”这样的文件,这些才是CXF框架的关键组件。 "libs"目录很...