(三)CXF之处理输入参数与输出类型为复杂类型的webService服务
一、需求
- 调用webService服务,把用户名和密码封装为用户对象作为参数,返回该用户所用友的角色列表。
二、发布服务
2.1 编写服务接口
@WebService
public interface ILogin { @WebResult(name="getRoleByUserResult")
public List<Role> getRoleByUser(@WebParam(name="user")User user); }
2.2 实现服务
package com.shyroke.service; import java.util.ArrayList;
import java.util.List; import javax.jws.WebService; import com.shyroke.bean.Role;
import com.shyroke.bean.User; @WebService(endpointInterface="com.shyroke.service.ILogin")
public class Login implements ILogin { public List<Role> getRoleByUser(User user) { List<Role> roleList = new ArrayList<Role>(); if (user.getUserName().equals("admin") && user.getPassWord().equals("123")) {
roleList.add(new Role(1, "管理员"));
roleList.add(new Role(2, "普通用户")); } else if (user.getUserName().equals("user") && user.getPassWord().equals("123")) {
roleList.add(new Role(2, "普通用户")); } else { return null;
} return roleList;
} }
2.3 发布服务
package com.shyroke.publish; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; import com.shyroke.service.ILogin;
import com.shyroke.service.Login; public class PublishMain {
public static void main(String[] args) { String address="http://localhost:3333/login";
JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();
factoryBean.setAddress(address);
factoryBean.setServiceClass(ILogin.class);
factoryBean.setServiceBean(new Login()); factoryBean.create();
System.out.println("服务发布......."); }
}
2.4 结果
三、客户端调用
3.1 根据wsdl文件生成client

- 命令的含义请参考上一章节

3.2 测试
package com.shyroke.service;
import java.util.List;
public class Client {
public static void main(String[] args) {
User user=new User();
user.setId(1);
user.setUserName("admin");
user.setPassWord("123");
ILogin login=new ILoginService().getILoginPort();
List<Role> roleList=login.getRoleByUser(user);
for(Role role:roleList) {
System.out.println(role.getId()+"\t"+role.getRoleName());
}
}
}
3.3 结果

(三)CXF之处理输入参数与输出类型为复杂类型的webService服务的更多相关文章
- Mybatis框架四:输入参数、输出参数
输入参数可以有三种:简单类型,POJO,包装类 关于前两种: http://www.cnblogs.com/xuyiqing/p/8600888.html 这里写一下传递包装类参数: 一个POJO:U ...
- 深入比特币原理(三)——交易的输入(input)与输出(output)
本节内容非常重要,如果你不能很好的掌握本节内容,你无法真正理解比特币的运行原理,请务必要学习清楚. 比特币的交易模型为UTXO(unspend transaction output),即只记录未花费的 ...
- 存储过程: 存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。
存储过程示例一: 执行存储过程方法一: 执行存储过程方法二: 存储过程可以定义返回值: 修改存储过程: 利用存储过程查找三个表内的信息: 练习: 超市管理系统:表一:门店仓库表 MenDian ...
- (四)输入参数与输出类型为复杂类型的web服务
一. 服务端发布服务 1.1 定义复杂类型:UserBean.java package service; public class UserBean { private String userId; ...
- Mybatis输入映射和输出映射
本节内容: 输入参数映射 输出映射 resultMap Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 一.环境准备 复制 ...
- Hibernate调用带有输入参数,输出参数为cursor的存储过程
一.Oracle创建表及存储过程 1.创建表T_MONITOR_DEVICE 创建后的表结构 2.创建存储过程 create or replace procedure ProcTestNew(v_mo ...
- 实验二 输出“Hello Word!”,测试主方法的输入参数和心得体会
实验二 一.输出“Hello World!” 1.首先打开eclipse,如下图所示. 2.选择一个工作空间,如下图所示. 3.接下来,点击[Java项目]创建一个Java项目,如下图所示. 4.然后 ...
- 实验二:1、输出“Hello Word!”;2、测试主方法 的输入参数。3、总结
一.输出:“Hello Word!” 1.新建java项目:点击File->New->Java Project.在project name一栏中输入自己所要创建的项目名称,点击Finish ...
- 输入参数是NSDate,输出结果是星期几的字符串
给你一个方法,输入参数是NSDate,输出结果是星期几的字符串.+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *wee ...
随机推荐
- 在从myql服务器上 取消主从关系和重新构建主从关系
取消主从关系 mysql -uroot -p mysql>show slave status\G; 查看主库是否为之前的ip mysql>change master to master_h ...
- css让文字竖着排列 writing-mode 属性
writing-mode 属性 writing-mode 属性定义了文本在水平或垂直方向上如何排布. 语法格式如下: writing-mode: horizontal-tb | vertical-rl ...
- sqlserver 动态sql执行execute和sp_executesql
sp_executesql的运用 书写语法要点: exec sp_executesql @sql,N’参数1 类型1,参数2 类型2,参数3 类型3 OUTPUT’,参数1,参数2,参数3 OUTPU ...
- Java四方面组成要素
Java由四方面组成: Java编程语言.Java类文件格式.Java虚拟机和Java应用程序接口(Java API).它们的关系如下图所示:
- mysql 对应数据库服务器配置 所能承受的tps和qps
总结: 吞吐量实际涵盖了TPS 和 QPS TPS 是指产生事物的请求,比如对数据库 增.删.改 QTP 是对数据库查询动作,无逻辑非事物,比如 查询 假如脚本里面都是get请求,那么出来的吞吐量就是 ...
- ABAP Memory ID
转自:https://blog.csdn.net/lyq123333321/article/details/52659114 (一) Difference Between SAP a ...
- C#关于DateTime得到的当前时间的格式和用法
DateTime.Now.ToShortTimeString() DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.T ...
- Python3之切片及内置切片函数slice
切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list L=[0,1,2,3,4,5,6,7,8,9] 取前3个元素,应该怎么做 笨方法,一个个列出来 >> ...
- C入门笔记
教程总体概括:Mac OS X系统简介:C语言:OC语言:Foundation:iOS开发:项目实战. 3.第一个c语言程序#include <stdio.h>//预处理指令:在编译之前执 ...
- AWS 存储服务(三)
目录 AWS S3 业务场景 挑战 解决方案 S3的好处 S3 属性 存储桶 Buckets 对象 Object S3 特性 S3 操作 可用性和持久性 一致性 S3 定价策略 S3高级功能 存储级别 ...