- 浏览: 1157378 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (411)
- ASP (6)
- ASP.NET (2)
- CSS (4)
- HTML (11)
- Javascript (34)
- Java (100)
- PHP (1)
- XML (2)
- Flash/Flex/AS (1)
- 编程理论 (6)
- 操作系统 (23)
- 架构与搭建 (13)
- 软件应用 (39)
- 移动开发及应用 (4)
- UI设计 (2)
- 数据库 (23)
- 围棋 (1)
- 闲语茶楼 (6)
- 金融 (1)
- 其他 (3)
- Linux/Unix (38)
- 项目管理 (3)
- cmd (2)
- ssh (3)
- SVN (1)
- 移动开发 (1)
- HTML5 (1)
- jquery (1)
- redis (1)
- nginx (2)
- webservice (1)
- vmware (1)
- ssl (1)
- eclipse (1)
- sqlite (1)
- spring (2)
最新评论
-
cnhome:
Java 8 下:// 编码String asB64 = Ba ...
不要使用sun.misc.BASE64Encoder -
请叫我翠西狗:
那如果我要用this.getServletContext() ...
JSP/Servlet使用代理或路由器映射时获取服务器地址为内网地址 -
nomblouder:
按照别的博客,别名一直是p4merge,导致一直报错comma ...
win与linux下git配置p4merge为合并比较工具的方法 -
linuxzhang:
请问我按你的方法修改了sts-3.7.3.RELEASE中的o ...
Eclipse中setter/getter方法自动添加属性注释 -
yzh__:
求解答。。。
Struts2定义默认拦截器时需要注意
一些java类型不能自然映射成xml,例如,HashMap 或其他非 JavaBean 类,这个时候可以覆盖XmlAdapter来自定义转换方法。
XMlAdapter讲解:
javax.xml.bind.annotation.adapters
类 XmlAdapter<ValueType,BoundType>
类型参数:
BoundType - JAXB 不知道如何处理的一些类型。编写一个适配器,以便允许通过 ValueType 将此类型用作内存表示形式。
ValueType - JAXB 无需其他操作便知道如何处理的类型。
引入:
在CXF所些的服务端程序,被客户端程序调用时,SOAP中不支持Map(客户端传递Map参数或服务端返回Map数据),否则会如下错误:Marshalling Error: java.util.Map is not known to this context。
原因:
CXF中不支持Map
解决方案:
通过适配器将数组转换成HashMap的方式支持。
代码实现:
1、 定义Map转换器(code)import java.util.ArrayList;
import java.util.List; import java.util.Map; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlType; /** * @author TEANA E-mail: mmz06@163.com * @version 创建时间:2011-7-1 下午11:21:49 * @DO Map转换器 */ @XmlType(name = "MapConvertor") @XmlAccessorType(XmlAccessType.FIELD) public class MapConvertor { private List<MapEntry> entries = new ArrayList<MapEntry>(); public void addEntry(MapEntry entry) { entries.add(entry); } public static class MapEntry { public MapEntry() { super(); } public MapEntry(Map.Entry<String, Object> entry) { super(); this.key = entry.getKey(); this.value = entry.getValue(); } public MapEntry(String key, Object value) { super(); this.key = key; this.value = value; } private String key; private Object value; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public Object getValue() { return value; } public void setValue(Object value) { this.value = value; } } public List<MapEntry> getEntries() { return entries; } }
2、 定义Map适配器(code)import java.util.HashMap;
import java.util.Map; import javax.xml.bind.annotation.adapters.XmlAdapter; /** * @author TEANA E-mail: mmz06@163.com * @version 创建时间:2011-7-1 下午11:25:11 * @DO Map适配器 */ public class MapAdapter extends XmlAdapter<MapConvertor, Map<String, Object>> { @Override public MapConvertor marshal(Map<String, Object> map) throws Exception { MapConvertor convertor = new MapConvertor(); for (Map.Entry<String, Object> entry : map.entrySet()) { MapConvertor.MapEntry e = new MapConvertor.MapEntry(entry); convertor.addEntry(e); } return convertor; } @Override public Map<String, Object> unmarshal(MapConvertor map) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); for (MapConvertor.MapEntry e : map.getEntries()) { result.put(e.getKey(), e.getValue()); } return result; } }
3、 在CXF服务端的接口程序中进行如下定义@WebMethod
@XmlJavaTypeAdapter(MapAdapter.class) Map<String, String> getMap();
进行以上3个步骤,就可以实现CXF中对Map的支持。
转自:http://mmz06.blog.163.com/blog/static/121416962011620339342/
发表评论
-
Maven使用mvn命令时跳过test的参数
2015-05-28 11:24 1684方法有两种: 方法1: mvn install -Dsk ... -
Spring中Propagation类的事务属性区别
2014-12-08 14:50 1907PROPAGATION_REQUIRED:支持当前事务,如果 ... -
Spring AOP中pointcut expression表达式解析
2014-08-27 15:39 3384Pointcut 是指那些方法需要被执行"AOP& ... -
用正则表达式替换手机号为星号*的写法
2014-08-11 15:43 9988现在网络越来越关注一些隐私,比如手机号隐藏当中的若干位数字 ... -
java使用相对路径连接sqlite
2014-08-01 15:48 6853在sqlite的连接源码中,可以看到 :resource: ... -
Eclipse中setter/getter方法自动添加属性注释
2014-08-01 12:11 16531这篇文章以前在公司内网发的,到现在也一直有用,发上来分享给有 ... -
memcached-session-manager配置
2014-07-09 18:01 925声明:本篇文章是根据memcach ... -
使用java原生url连接传输protobuf
2014-06-26 18:16 1424protobuf已经出来好多年了,原谅我最近才了解到goo ... -
Tomcat内存、连接数等性能参数设置
2014-02-20 14:37 16801、修改启动时内存参数、并指定JVM时区 (在windows ... -
使用JSP列出所有运行中的线程
2013-07-29 10:06 1019<html> <head> &l ... -
JVM系列五:JVM监测&工具[整理中]
2013-05-10 10:34 1108前几篇篇文章介绍了介绍了JVM的参数设置并给 ... -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
2013-05-10 10:32 1204java application项目(非web项目) 改进 ... -
JVM系列三:JVM参数设置、分析
2013-05-10 10:30 983不管是YGC还是Full GC,GC过程中都 ... -
JVM系列二:GC策略&内存申请、对象衰老
2013-05-10 10:19 1004JVM里的GC(Garbage Collec ... -
JVM系列一:JVM内存组成及分配
2013-05-10 10:14 1056java内存组成介绍:堆(Heap)和非堆(Non-h ... -
jenkins配置权限不对导致无法登陆的重置方法
2013-04-20 20:43 25295找到.jenkins/config.xml文件: 替换为: ... -
Spring3中替换默认拦截器的方法BeanFactoryPostProcessor
2012-08-14 16:51 4013由于Spring默认的静态资源处理器不能满足需求,需要做一些自 ... -
Hessian 权限认证
2012-08-07 11:23 1475Hessian 权限认证 Hessian的一些基本简介已经在上 ... -
利用java 6.0的脚本引擎执行字符串表达式运算
2012-08-06 23:09 1407例子都在这里了:http://www.java2s.com/C ... -
在spring、tomcat中使用多数据源并支持分布式事务管理
2012-08-06 22:10 2587原文:http://zxlaiye.iteye.c ...
相关推荐
处理cxf版本和jaxb包中冲突问题,解决webservice中遇到的版本问题
覆盖以下内容:基于JAX-WS规范和CXF自身的前端模式实现,CXF支持的数据绑定(DataBindings),CXF支持的WSDL绑定,CXF支持的传输协议绑定。CXF的调式、配置、日志、发布和工具。CXF实现RESTful服务。CXF对WS-* 的...
07.处理Map等CXF无法自动转换的复合数据类型的形参和返回值
webservice实例 CXF的JAXWS和JAXRS实现 及JAXB标准接口实现带jar包 全部手写,保证质量,导入就可以用
WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。最后终于搞到手,上传上来分享给大家。 jdk版本 CXF版本 java 9及以上 3.3.x java 8 3.x java 7 2.2x --- 3.2之前版本 java 6 3.1 ...
赠送jar包:cxf-rt-databinding-jaxb-3.0.1.jar; 赠送原API文档:cxf-rt-databinding-jaxb-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-databinding-jaxb-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-...
简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...
cxf 完整的服务端客户端
本包为springboot框架 添加了cxf 和根据aop 灵活的使用多数据源 根据自己的需求去添加数据源 只需要在application.yml中添加数据源信息 以别名定义数据源 再在dao层或是service层 方法或者类上方添加@DataSource(...
Apache CXF 是一个开源的 Web Services 框架。如果需要轻松实现 Web Services 的发布和使用,可以将其作为其中一种解决方案。
5. Pluggable Data Bindings:提供了数据绑定的功能,实现了 XML 元素与 Java 对象之间的映射,支持多种数据绑定类型,包括JAXB 2.x、Aegis、Apache XMLBeans、Service Data Objects (SDO) 和 JiBX。 6. Protocol ...
CXF 客户端最少jar包支持,CXF 客户端最少jar包支持,CXF 客户端最少jar包支持,
04.使用CXF处理JavaBean式的复合类型和List集合类型的形参和返回值
spring,cxf,restful发布webservice传递复杂对象,例如List,Map,List<Map>
cxf框架与jdk6出现冲突的支持包,请大家支持下!
通过cxf将多个webServices整合到一起方便管理与维护
详细描述了cxf如何处理Map等不能处理的类型
JAVA7和JAVA8对应CXF资源 WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。最后终于搞到手,上传上来分享给大家。 jdk版本 CXF版本 java 9及以上 3.3.x java 8 3.x java 7 2.2x --- ...
CXF 包含了大量的功能特性,但是主要集中在以下几个方面: 支持 Web Services 标准:...支持二进制和遗留协议:CXF 的设计是一种可插拨的架构,既可以支持 XML ,也可以支持非 XML 的类型绑定,比如:JSON 和 CORBA。
转成了PDF, 总共10页。 本文旨在介绍CXF架构,以便对CXF有一个快速...7. 数据绑定支持 8. 协议绑定支持 9. 多种层传输支持 10. 多种编程语言支持 11. WS-*和相关特性支持 12. 代码生成工具盒WSDL验证工具 13. 灵活部署