(三)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 ...
随机推荐
- vue项目构建:vue-cli+webpack常用配置
1,Webpack-dev-server的proxy用法:https://www.jianshu.com/p/f489e7764cb8 2,vue-cli3搭建项目之webpack配置:https:/ ...
- Django开发简单采集用户浏览器信息的小功能
Django开发简单采集用户浏览器信息的小功能 Centos环境准备 yum install –y python-pip export http_proxy=http://10.11.0.148:80 ...
- 数据库连接池Flask-SQLAlchemy中多线程安全的问题
使用flask-sqlalchemy写代码码到一半,突然想到,Session是否是线程安全的?于是上官方文档,答案是否! 那问题来了,怎么破?因为它会牵涉到多线程情况下,调用rollback导致的不可 ...
- osgText::Text osg字体
#ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include<iostream> #include <osgV ...
- LeetCode_171. Excel Sheet Column Number
171. Excel Sheet Column Number Easy Given a column title as appear in an Excel sheet, return its cor ...
- C# WebApi 接口传参详解
这篇文章主要介绍了C# WebApi 接口传参详解,本篇打算通过get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/datetime等).实体.数组等类型的参 ...
- Spring Boot中在程序中获得application.properties中的值
方法是使用@Value注解的方式注解一个值. 首先,在我们的application.properties中添加一个值如下: zifeiy.tmpfile.location=D:/duty 然后在我们的 ...
- Struts2中action接收中文参数为乱码解决方法
老实说,中文乱码问题是每个程序员会经常遇到的问题,而且也是一个很头疼的问题.网上很多关于解决中文乱码的帖子,看几个之后你会发现大都是一样的.但是我们照着做,却还是无法解决乱码问题.我也是看了好多帖子, ...
- Win 7 环境上,ThingsBoard安装及启动
一.参考官方网址进行Thingsboard的下载与安装, 官方教程https://thingsboard.io/docs/user-guide/install/windows/#step-2-thin ...
- go项目部署到linxu
环境: 在mac上编译, 编译后上传到linux, 然后运行代码 go项目打包 一.直接部署到linux 1. 在mac上, 进入到项目目录, 执行以下命令, 进行编译: CGO_ENABLED=0 ...