CXF中的类型转换

在WebService中消息的传递可以是原生数据类型、String、List、Set等,但是对于Map型的数据类型就需要通过相应的转换才能传递。

实例:

@WebService

public interface Helloworld {

public String   sayHello(String name);

public List<Cat> getCatByUserName(User user);

public @XmlJavaTypeAdapter(value = Adapter.class)
Map<String,Cat> getCat();

}   //该WebService 中含有map类型数据的传递,侧需要通过@XmlJavaTypeAdapter  注解接口来实现,其中value表示我们自定义的转换类,定义的转换类需要继承XmlAdapter<?,#>其中?表示我们转换之后的类型,#表示原类型

package util;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

import javax.xml.bind.annotation.adapters.XmlAdapter;

import bean.Cat;

public class Adapter extends XmlAdapter<MyMap, Map<String,Cat>> {

@Override

public Map<String, Cat> unmarshal(MyMap v) throws Exception {  // 复写方法 :转换回来

Map<String,Cat> map=new HashMap<String,Cat>();

List<bean.Entry> list=v.getList();

for(bean.Entry entry:list)

{

map.put(entry.getNum(), entry.getCat());

}

return map;

}

@Override

public MyMap marshal(Map<String, Cat> v) throws Exception {
 // 复写方法 :转换过去

MyMap myMap=new MyMap();

List<bean.Entry> list=new ArrayList<bean.Entry>();

bean.Entry entry=null;

Set<java.util.Map.Entry<String,Cat>> set=v.entrySet();

for(Iterator<java.util.Map.Entry<String,Cat>> iter=set.iterator();iter.hasNext();)

{

java.util.Map.Entry<String,Cat> t=iter.next();

entry=new bean.Entry();

entry.setNum(t.getKey());

entry.setCat(t.getValue());

list.add(entry);

}

myMap.setList(list);

return myMap;

}

}

public class Cat {

private int id;

private String name;

private String password;

//省略setter、getter

}

public class Entry {

private String num;

private Cat cat;

//省略setter、getter

}

public class MyMap {

private List<Entry> list;

//省略setter、getter

}

时间: 2024-07-31 20:09:14

CXF中的类型转换的相关文章

java中强制类型转换

在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的. 当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了.在Java中我们可以通过

c 中的类型转换

1. c 中的类型转换是临时对变量值的转换,一般分为: 强制类型转换,自动类型转换.自动转换中一般遵守无论表达式的值是什么样的,系统都自动将其 转换为赋值运算符左边变量的类型. 2. 当 int 赋给char 时,将int 保留低 8 位赋给 char 型变量.当 long 赋给 int 时,将 long 的低16 位保留赋给 int 型变量.

CXF中Web服务请求处理流程

Web服务其本质上还是HTTP请求,只不过要遵循Web服务特定的规范,比如说服务端与客户端双方通信的媒介为XML文件格式,以完成对一次Web服务调用的描述.当然此XML还有特定的格式,至于这个特定的格式是什么样的取决于使用哪一种数据绑定方式.CXF中称这为数据绑定,个人觉得称之为Java对象的序列化与反序列化更易懂些. 本文将从源码(CXF版本为2.7.6)层面来分析一下CXF是如何完成对一个Web服务(SOAP类型为例)请求的处理的,注意这里分析的是请求的处理,并不包含这个请求是如何生成的,分

在复数类中自定义类型转换函数实现复数和非复数之间的运算

实现复数+double型数据,并且打印运算后实部上的数据 #include <iostream> using namespace std; class Complex { public: Complex( )//定义默认构造函数初始化复数 { real=0; imag=0; } //使用初始化表初始化复数 Complex(double r, double i):real(r),imag(i){} //定义自定义类型转换函数 operator double() { return real; }

在cxf中使用配置避免增加字段导致客户端必须更新的问题

在cxf中使用配置避免增加字段导致客户端必须更新的问题 http://www.iflym.com/index.php/code/201307310001.html 在cxf中使用配置避免增加字段导致客户端必须更新的问题 2013/07/31 11:00:19 1 Comment Tags: cxf, webservice   Posted :java开发, 开源框架, 编程开发 在使用cxf实现webservice时,经常碰到的问题就是如果在服务端,修改了一个接口的签名实现,如增加一个字段,或者

struts中的类型转换(2)

第一步:(这一步和其他一样,这里从简) 依旧是新建一个web project,命名为struts2,导入struts2必须的包.在src目录下新建struts.xml,修改web.xml文件. 第二步: 将index.jsp改名为input.jsp(这个不是必须的,事实上也没有必要,此处只是为了便于称呼).Input.jap的代码如下 Java代码   <%@ page language="java" import="java.util.*" pageEnco

理解C#语言中的类型转换----初学者的理解,请大神指教

一下都是在视频教学中学到后的理解,如果说错了请大神指教 C#语言中的类型转换,就是将某个数据要转换成另一个类型的数据. c#语言中的数据类型主要有: char类型(字符类型): string类型(字符串类型): int类型(整数类型): double类型(小数类型): 类型转换主要分为三种: 1:任意类型转换为string类型: 转换代码书写格式为:待转换的数据.Tostring(): a,这里的待转换的数据指的是需要转换的数据或变量.后面的Tostring():是固定书写. 转换完成后的返回类

wxWidgets中的类型转换

1int  to wxString:     wxString str = wxString::Format(wxT("%i"),myInt); 2wxString to int :     int i;  i = wxAtoi(str); 3 string to wxString:     std::string stlString = "sdfas"; wxString mystr(stlString .c_str(),wxConvUTF8); 4 wxStri

Java中数据类型转换

1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,long 浮点型 float,double 3.数据类型转换 Java中数据类型转换分为三种,简单数据类型转换,字符串与其他类型转换,其他实用数据类型转换 (1)简单数据类型转换 在Java中,整型,实型,字符型被视为简单数据类型. 这些类型级别从低到高:(byte,short,char)-> int