CXF框架简单的JavaBean对象传递进行讲解。
来源:互联网 发布:网络上门服务电话 编辑:程序博客网 时间:2024/05/21 14:07
第一步:创建传输的JavaBean对象(UserInfo)
- package com.ws.model;
- import javax.xml.bind.annotation.XmlAccessType;
- import javax.xml.bind.annotation.XmlAccessorType;
- import javax.xml.bind.annotation.XmlRootElement;
- import javax.xml.bind.annotation.XmlType;
- @XmlRootElement(name="UserInfo")
- @XmlAccessorType(XmlAccessType.FIELD)
- @XmlType(propOrder={"userName","userAge"})
- public class UserInfo {
- private String userName;
- private Integer userAge;
- public UserInfo(String name,Integer age){
- this.userAge = age;
- this.userName = name;
- }
- public UserInfo(){
- }
- // 添加geter/seter方法..
- }
package com.ws.model;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType;@XmlRootElement(name="UserInfo")@XmlAccessorType(XmlAccessType.FIELD)@XmlType(propOrder={"userName","userAge"})public class UserInfo {private String userName;private Integer userAge;public UserInfo(String name,Integer age){this.userAge = age;this.userName = name;}public UserInfo(){}// 添加geter/seter方法..}
注解:@XmlRootElement-指定XML根元素名称(可选)
@XmlAccessorType-控制属性或方法序列化 , 四种方案:
FIELD-对每个非静态,非瞬变属性JAXB工具自动绑定成XML,除非注明XmlTransient
NONE-不做任何处理
PROPERTY-对具有set/get方法的属性进行绑定,除非注明XmlTransient
PUBLIC_MEMBER -对有set/get方法的属性或具有共公访问权限的属性进行绑定,除非注 明XmlTransient
@XmlType-映射一个类或一个枚举类型成一个XML Schema类型
第二步:创建webservices服务端接口和实现类
1、创建服务端接口类
- package com.ws.services;
- import javax.jws.WebService;
- import com.ws.model.UserInfo;
- @WebService
- public interface IUserServices {
- public UserInfo getUserInfo(String userName, Integer userAge);
- }
package com.ws.services;import javax.jws.WebService;import com.ws.model.UserInfo;@WebServicepublic interface IUserServices {public UserInfo getUserInfo(String userName, Integer userAge);}
2、创建服务端接口实现类
- package com.ws.services.impl;
- import javax.jws.WebService;
- import com.ws.model.UserInfo;
- import com.ws.services.IUserServices;
- @WebService
- public class UserServicesImpl implements IUserServices {
- public UserInfo getUserInfo(String userName, Integer userAge) {
- return new UserInfo(userName,userAge);
- }
- }
package com.ws.services.impl;import javax.jws.WebService;import com.ws.model.UserInfo;import com.ws.services.IUserServices;@WebServicepublic class UserServicesImpl implements IUserServices {public UserInfo getUserInfo(String userName, Integer userAge) {return new UserInfo(userName,userAge);}}
3、创建服务端,并发布服务
- package com.test;
- import javax.xml.ws.Endpoint;
- import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
- import com.ws.services.impl.UserServicesImpl;
- public class ServerTest {
- public ServerTest(){
- // 发布User服务接口
- Endpoint.publish("http://localhost:8090/userInfoServices", new UserServicesImpl());
- }
- public static void main(String[] args) {
- // 启动服务
- new ServerTest();
- System.out.println("Server ready...");
- try {
- Thread.sleep(1000*300);//休眠五分分钟,便于测试
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println("Server exit...");
- System.exit(0);
- }
- }
package com.test;import javax.xml.ws.Endpoint;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;import com.ws.services.impl.UserServicesImpl;public class ServerTest {public ServerTest(){// 发布User服务接口Endpoint.publish("http://localhost:8090/userInfoServices", new UserServicesImpl());}public static void main(String[] args) {// 启动服务new ServerTest();System.out.println("Server ready..."); try {Thread.sleep(1000*300);//休眠五分分钟,便于测试 } catch (InterruptedException e) {e.printStackTrace();} System.out.println("Server exit..."); System.exit(0);}}
第三步:创建webservices客户端,并进行测试(这里只例举在客户端工程中的测试方法)
1、将服务端的JavaBean和Services接口类,copy到客户端工程中,且目录要一致
2、在客户端工程中,新建一个测试类测试
- package com.ws.client;
- import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
- import com.ws.model.UserInfo;
- import com.ws.server.IUserServices;
- public class UserTest {
- public static void main(String[] args) {
- //创建WebService客户端代理工厂
- JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
- //注册WebService接口
- factory.setServiceClass(IUserServices.class);
- //设置WebService地址
- factory.setAddress("http://localhost:8090/userInfoServices");
- IUserServices userServices = (IUserServices)factory.create();
- System.out.println("invoke userinfo webservice...");
- // 测试返回JavaBean对象的
- UserInfo user = userServices.getUserInfo("vicky", 23);
- System.out.println("UserName: "+user.getUserName());
- System.out.println("UserAge : "+user.getUserAge());
- System.exit(0);
- }
- }
package com.ws.client;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import com.ws.model.UserInfo;import com.ws.server.IUserServices;public class UserTest {public static void main(String[] args) {//创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); //注册WebService接口 factory.setServiceClass(IUserServices.class); //设置WebService地址 factory.setAddress("http://localhost:8090/userInfoServices"); IUserServices userServices = (IUserServices)factory.create(); System.out.println("invoke userinfo webservice...");// 测试返回JavaBean对象的UserInfo user = userServices.getUserInfo("vicky", 23);System.out.println("UserName: "+user.getUserName());System.out.println("UserAge : "+user.getUserAge());System.exit(0); } }
第四步:运行webServices服务,在IE中输入http://localhost:8090/userInfoServices?wsdl,验证服务是否成功发布
第四步:运行客户端,验证。
- CXF框架简单的JavaBean对象传递进行讲解。
- 简单JavaBean对象传递
- WebService CXF学习(进阶篇1):自定义对象传递(简单JavaBean对象)
- WebService CXF学习(进阶篇1):自定义对象传递(简单JavaBean对象)
- webService框架cxf的简单使用
- AXIS传递包含javaBean对象的List对象
- CXF调用传递对象参数
- WebService CXF学习:对象传递
- 使用CXF框架实现webservice的一个简单例子
- 简单地基于cxf框架的webservice完整开发示例
- 用Maven搭建基于CXF框架的简单WebServiceDemo
- 一个简单的cxf框架调用webservice接口天气预报例子
- 使用CXF框架开发一个简单的WebService
- 传递复杂类型对象(CXF服务端/CXF客户端)
- CXF WebService中传递复杂类型对象 .
- CXF WebService中传递复杂类型对象
- CXF WebService中传递复杂类型对象
- CXF WebService 4 传递复杂类型对象
- (转)c fread()在判断文件结束时需要注意的一些事
- 使用初始化清单和直接在构造函数内初始化成员变量的区别
- 英尺的转换
- 配置Editplus的PHP调试环境(三)
- 类模板总结与补充
- CXF框架简单的JavaBean对象传递进行讲解。
- poj3984迷宫问题 广搜+最短路径+模拟队列
- 将应用程序注册成后台服务程序
- Google Hacking(谷歌黑客)
- 要想变富,就要有头脑啊
- 让控制台程序后台运行并开机启动的简单方法
- 输入输出运算符重载
- uC/OS-II的任务管理和调度
- win7下通过update安装设备驱动软件的一种方法