cxf学习笔记之传递复杂对象
设计思路,创建一个人员注册的web服务。接受客户端传递的人员信息并注册到系统中。而这个人员信息是一个复杂对象。
一、服务端
1、创建人员类
package cn.ibeans.ws.pojo;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class Person {private String name;private String sex;/*public Person(String name, String sex) {super();this.name = name;this.sex = sex;}*/public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "Person [name=" + name + ", sex=" + sex + "]";}}package cn.ibeans.ws;import javax.jws.WebService;import cn.ibeans.ws.pojo.Person;/** * 设计一个人员报名的web服务,人员信息是一个复杂对象。 * 服务端接收该对象后进行必要的处理,并将报名结果回传客户端 * @author llf * */@WebServicepublic interface RegisterWebService {public String toRegister(Person person); public String toBatchRegister(List<Person> persons);}/** * */package cn.ibeans.ws.impl;import javax.jws.WebMethod;import javax.jws.WebService;import cn.ibeans.ws.RegisterWebService;import cn.ibeans.ws.pojo.Person;/** * @author llf * */@WebService(endpointInterface="cn.ibeans.ws.RegisterWebService")public class RegisterWebServiceImpl implements RegisterWebService {/* (non-Javadoc) * @see cn.ibeans.ws.PersonWebService#toRegister(cn.ibeans.ws.pojo.Person) */@Overridepublic String toRegister(Person person) {if(person!=null){System.out.print("注册信息是:"+person);}return person.getName();} @Overridepublic String toBatchRegister(List<Person> persons) {if(persons!=null){for(Person person:persons){System.out.println(person);}}return "ok";}}<?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:p="http://www.springframework.org/schema/p" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxws:endpoint id="register" implementor="cn.ibeans.ws.impl.RegisterWebServiceImpl" address="/ws/register"/> </beans>

wsdl2java http://localhost:9090/cxfServer/ws/register?wsdl
<jaxws:endpoint id="client" serviceaddress="http://localhost:9090/cxfServer/ws/register"/>