使用cxf进行javabean的传递,以及复杂类型(list)的传递。
1,建立一个web service。
然后建立自定义对象User
[b]似乎注解可有可无[/b]
2,建立基础发送传递方式javabean和list
上面为一个interface,请对其进行实现
3,开启web service。
客户端调用。
使用eclipse for javaee
建立一个动态web 项目
[img]http://dl.iteye.com/upload/attachment/0075/0554/e89d694b-94cd-37af-b182-2878cb2b9e9f.png[/img]
填写项目名称之后,点击完成。
[img]http://dl.iteye.com/upload/attachment/0075/0556/9fd13382-20cb-3c0b-8a0e-8b021b2aeeb9.png[/img]
在项目名称上点击右键,新建web service client
[img]http://dl.iteye.com/upload/attachment/0075/0558/6cf6f7f2-83f0-386d-be95-6471ee6c2c45.png[/img]
填写wsdl
[img]http://dl.iteye.com/upload/attachment/0075/0560/cead1dd0-d220-3acf-a321-059f5fc96f47.png[/img]
点击完成后就会出现一堆java类文件。
[img]http://dl.iteye.com/upload/attachment/0075/0562/2902d497-ad96-36f6-8c4c-20c4b289a0f8.png[/img]
然后编写测试类
[b]注意在这里传递list或map对象的时候不能穿List要它的实现类,ArrayList。map也是一样。使用HashMap进行传送,否则客户端执行的时候会出现类型转换不成功。[/b]
1,建立一个web service。
然后建立自定义对象User
package com.duduli.user;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import org.apache.cxf.aegis.type.java5.XmlType;
//@XmlType(name = "user")
//@XmlAccessorType(XmlAccessType.FIELD)
public class User {
public User(){
};
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
[b]似乎注解可有可无[/b]
2,建立基础发送传递方式javabean和list
@WebMethod(operationName = "getU", action = "urn:GetU")
public User getU();
@WebMethod(operationName = "getUserArray", action = "urn:GetUserArray")
public ArrayList<User> getUserArray();
上面为一个interface,请对其进行实现
@Override
public User getU() {
// TODO Auto-generated method stub
User u = new User();
u.setName("duduli");
u.setAge(21);
return u;
}
@Override
public ArrayList<User> getUserArray() {
// TODO Auto-generated method stub
System.out.println("return array");
User u = new User();
u.setName("tom");
u.setAge(23);
ArrayList<User> l = new ArrayList<User>();
l.add(u);
return l;
}
3,开启web service。
客户端调用。
使用eclipse for javaee
建立一个动态web 项目
[img]http://dl.iteye.com/upload/attachment/0075/0554/e89d694b-94cd-37af-b182-2878cb2b9e9f.png[/img]
填写项目名称之后,点击完成。
[img]http://dl.iteye.com/upload/attachment/0075/0556/9fd13382-20cb-3c0b-8a0e-8b021b2aeeb9.png[/img]
在项目名称上点击右键,新建web service client
[img]http://dl.iteye.com/upload/attachment/0075/0558/6cf6f7f2-83f0-386d-be95-6471ee6c2c45.png[/img]
填写wsdl
[img]http://dl.iteye.com/upload/attachment/0075/0560/cead1dd0-d220-3acf-a321-059f5fc96f47.png[/img]
点击完成后就会出现一堆java类文件。
[img]http://dl.iteye.com/upload/attachment/0075/0562/2902d497-ad96-36f6-8c4c-20c4b289a0f8.png[/img]
然后编写测试类
@org.junit.Test
public void test02() {
FirstImpService fis = new FirstImpService();
First f = fis.getFirstImpPort();
User u = f.getU();
System.out.println(u.getName());
System.out.println(u.getAge());
}
@org.junit.Test
public void test03() {
FirstImpService fis = new FirstImpService();
First f = fis.getFirstImpPort();
List<User> u = f.getUserArray();
for(User user:u){
System.out.println(user.getName());
System.out.println(user.getAge());
}
}
[b]注意在这里传递list或map对象的时候不能穿List要它的实现类,ArrayList。map也是一样。使用HashMap进行传送,否则客户端执行的时候会出现类型转换不成功。[/b]