[01]基于webservice的权限系统

网上基于BS的通用的权限管理系统很多,但是通过webservice接口调用的权限管理系统却很少见。加上本人之前做过一段时间的微信开发,感觉做好一套api接口以供调用,会随着移动终端的发展显得更加重要。

以下,就是我做的一个基于cxf的webservice,若有不足,请大家给予指正。

这是此项目的目录结构,client包中存放用于测试部署的webservice的程序,dao中存放着相关的数据库的操作,model是对一个对象的封装,server包中存放着部署webservice的代码段,service存放了抽象接口,serviceImpl是具体实现,util中存放了具体的工具包,如c3p0数据库连接池。

今天,我就来说说,如何部署一个最简单的,不带数据库验证的基于cxf框架的webservice

1.首先是相关包的导入,具体不多说,可以去cxf官网下载

2.编写myservice中的抽象接口

@WebService
public interface MyService {

	//@WebParam给参数命名,提高可代码可读性。此项可选
	public  String sayHi(@WebParam(name="text") String text); 

3.编写具体实现类

@WebService
public class MyServiceImpl implements MyService {

	//测试的webservice
	public String sayHi(String name) {
		System.out.println("sayHello is called by " + name);
		return "Hello" + name;
	 }

4.接下来是服务器端程序的编写,启动服务端,如果可以成功访问http://localhost:9000/MyService?wsdl就说明部署成功。

public class Server {

	/**
	 * 私有化构造方法,好处不多讲,就是封装的好处
	 * 在浏览器中,如若可以访问http://localhost:9000/MyService?wsdl则说明部署成功
	 */
	private Server() {
		MyServiceImpl ms = new MyServiceImpl();
		// 创建WebService服务工厂
		JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
		// 注册WebService接口
		factory.setServiceClass(MyService.class);
		// 发布接口
		factory.setAddress("http://localhost:9000/MyService");
		factory.setServiceBean(ms);
		// 创建WebService
		factory.create();
	};

	public static void main(String[] args) throws InterruptedException {

		// 启动服务端
		new Server();
		System.out.println("Server ready...");
		// 休眠一分钟,便于测试
//		Thread.sleep(1000 * 60);
//		System.out.println("Server exit...");
//		System.exit(0);
	}

}

5.可以访问wsdl,则说明部署成功,现在我们就通过客户端程序调用webservice来实现一个最简单的交互过程。

public class Client {

	private Client() {
	};

	public static void main(String[] args) throws Exception {

		// 创建WebService客户端代理工厂
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		// 注册WebService接口
		factory.setServiceClass(MyService.class);
		// 设置WebService地址
		factory.setAddress("http://localhost:9000/MyService");
		MyService service = (MyService) factory.create();
		System.out.println("简单的cxf:" + service.sayHi("qzp"));
	}
	

控制台会输出

简单的cxf:Helloqzp

相关概念的解释:

以上是一个最简单的webservice的过程,下面我们对webservice中常用的概念做相关的解释和说明

1.服务(Service)的命名应遵守以下原则:

(1)服务命名为英文;

(2)服务的第一个英文单词的首字母小写,后续每个英文单词的首字母大写(常说的驼峰法);

此项目中服务名就是MyserviceImpl

2.操作就是服务名下面所有的具体的方法,如此处的sayHi();

3.WSDL是提供服务描述的,它包括如下两部分

(1) 数据类型定义Xml Schema文件,类型的命名空间为“http://ip:port/qxkz/service/schema/”,简称“st”;

(2)服务定义wsdl文件,其服务的命名空间为“http:// www. ip:port/ qxkz/service/cswebservice”,简称“sns”。

4.数据协议

采用WebService  Soap协议。客户端和服务端采用XML格式的字符串来交互业务数据,客户端将业务数据组织成XML格式的字符串作为入参调用服务端接口,服务端解析XML格式的字符串得到业务数据处理业务并把结果组织成XML格式的字符串返回给客户端。

此案例,不涉及xml部分,但是后面会对此做详细的讲解。

好,今天先简单的介绍一下webservice和简单的使用,下面,我会对此做深入的介绍,以及整个权限管理系统的源码介绍。

时间: 2024-11-04 17:26:08

[01]基于webservice的权限系统的相关文章

[02]基于webservice的权限系统

前面,已经介绍完了,如何利用cxf搭建webservice.那我们接下来就来介绍此权限系统的表结构. 此权限管理系统分为部门管理,员工管理,角色管理,权限管理,人员授权和业务管理(此处不涉及) 角色管理包括角色定义和角色授权.角色授权的过程是给指定角色以某个权限来完成授权: 权限管理即权限的定义和设置,权限管理的过程是给某个权限以某个对象操作表来完成管理: 人员授权的过程就是给人员以某个角色来完成授权. 这三句话,希望大家仔细品味,这是权限管理系统的核心所在,如果不是很好理解的话,可以接和我下面

C 实现基于角色的权限系统

本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1068 实例使用C# 实现基于角色的权限菜单管理系统, 管理员可以添加用户,删除用户, 添加分组,删除分组, 添加角色,删除角色,为角色关联权限等功能, 管理员用户自定义各个操作员的权限菜单标题 项目对应的实例代码可以通过右侧[下载实例]按钮获取 开发工具: VS2012 数据库: SQLServer [项目包含内容](见下图): [实例

主题:基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,

在平时的空闲时,自己做了一个权限管理系统,细粒度控制,支持控制到按扭!支持开源!分享知识! 很久之前就想把自己所学到的知识以及项目所用的技术集结起来,之前太忙了,一直没有动手做,这段时间有点闲,就把一个系统的基本要素功能做了出来,发现自己又懂得很多!其中也遇到不少困难和问题,但最终还是一一解决了!经验就是这样得来的!哈哈!我的博客有很多文章都是在项目中遇到问题以及解决办法写下来的!写得不好不要喷口水哈!如果觉得好的就 赞一下!谢谢! 以下的作品都是自己呕心沥血做出来的,源码中有很多注释,都是自己

从零开始——基于角色的权限管理01(补充)

此博文较为详细的介绍从零开始--基于角色的权限管理01文中的两个部分的流程(解释代码). 1) index.jsp中提交跳转action action的login,获取jsp页面传过来的用户名密码和验证码,进行验证 首先到userDao中,执行login方法,判断是否存在这组用户名和密码 接着到roleDao中,执行getRoleNameById以获取角色名 最后,进入main.jsp中 2)在main.jsp中,有一个树的显示,再次进入authServlet中执行menuAction   先后

基于Vue实现后台系统权限控制

原文地址:http://refined-x.com/2017/08/29/基于Vue实现后台系统权限控制/,转载请注明出处. 用Vue/React这类双向绑定框架做后台系统再适合不过,后台系统相比普通前端项目除了数据交互更频繁以外,还有一个特别的需求就是对用户的权限控制,那么如何在一个Vue应用中实现权限控制呢?下面是我的一点经验. 权限控制是什么 在权限的世界里服务端提供的一切都是资源,资源可以由请求方法+请求地址来描述,权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配

基于 OS X Mavericks 系统

基于 OS X Mavericks 系统远景论坛黑苹果区新手引导 常见疑难解答 以及必要知识普及帖 请善用论坛搜索功能 认真仔细地阅读置顶帖里的教程以及注意事项 前言:之前建立10.9区求助规范帖时,顺手写了新手普及帖,但总感觉信息不全,无法解决很多新手遇到的常见问题.所以今天抽出点时间,重新完善一下. 首先声明:置顶集合贴V4.3 是个相当好的帖子,也是我花很多心血在上面的帖子.而且这个帖子长期更新,很多问题,静下心来看一遍集合贴后,基本都能解决了.比起发帖询问干等着解答回帖,还不如先好好看看

基于Android2.3.5系统:Android.mk文件解析

*************************************************************************************************************************** 作者:EasyWave                                                                                                               时间:2

权限系统与RBAC模型概述

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html 0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西.可惜一直没狠下心来学习. 更详细的RBAC模型非常复杂.本文只做了一些基础的理论性概述.

七色花基本权限系统(3)- 利用EasyUI进行首页布局

EasyUI EasyUI是基于JQuery库的偏js轻型前端UI框架,不了解的读者可以参考官网地址. 在项目中增加JQuery和EasyUI,并在布局页中引用.为了结构清晰,方便日后维护和升级,可以在Scripts下创建jquery文件夹和jquery-easyui文件夹.这里选择1.11.0的JQuery和1.4.3的EasyUI. 特别说明一下,我已经修复了该版本的几个(只能通过修改源码来修正的)bug,并在updateLog.txt文件中做了修复记录. 图标库 再引入2套通用的图标库,以