由于工作需要,最近研究起一个开源的SOA解决方案wso2。然后发现这个东西各种强大,目前有接触的就是它的两个产品,一个是Application Server,即应用服务,另外一个是ESB(Enterprise Service Bus)企业服务总线。目前对于这个产品也只是简单应用,用Application Server来布WebService,用ESB来做代理、整合归集不同的系统服务。因为这个产品目前网上资料非常少,只能看官方文档,所以就想分享个学习笔记,同时有不对或者理解不清楚的地方也希望能有人来指点。
这里我就先简单的介绍一下wso2这个产品,前面说了,wso2是一套开源的SOA解决方案,关于SOA,我就简单说下,SOA是service-oriented architecture的简称,即面向服务的体系结构,更多关于SOA的介绍就请大家自行百度、google了。这篇主要是讲wso2旗下的产品Application Server。WSO2的应用服务器汇集了最好的开源技术的Web应用程序(如Apache Tomcat),Web服务(如Apache Axis2),RESTful服务(如JAX-RS)与WSO2的开源管理,监控,集群,和日志记录的扩展。可以轻松地共享业务逻辑,数据和整个IT生态系统的过程。
这篇要讲的就是如何使用wso2的应用服务器通过已有的数据库表来自动生成数据库的web service而不需要编写任何代码。
首先要先下载应用管理器的包,下载地址:http://wso2.com/products/application-server/ 目前最新版本为5.2.1,我这里使用的是5.1.0。下载完直接解压,然后找到bin文件夹,启动服务(wso2Service.bat)
如果端口没有冲突的话,你会看到这个界面
红框圈起来的地方就是我们的访问点。默认端口是9443,如果端口冲突了,可以在安装目录下\repository\conf\carbon.xml里面更改,不过它采取的是一种偏移方式,默认9443,在Ports里面有一个Offset标签,里面作为偏移量,如改2端口则变成9445
现在进入管理页面,默认账号跟密码都是admin。成功登陆后会看到一些列信息。
接下来我们要直接生成DataService了,只需要链接你的数据库,应用服务器就可以直接根据表自动生成数据库服务,之后只要根据wsdl生成客户端就可以直接调用,是不是很方便。wso2默认带的是h2的数据库,我这边使用的是oracle11g,接下来将说明如何创建数据源。
首先我们需要将数据库驱动包放到wso2的lib目录,..\repository\components\lib。重启服务,之后会自动在..\repository\components\dropins目录下也生成一份
可以将jar包添加到服务的公共库里,这样所建的所有服务都将会依赖这个包(之所以有两个驱动是因为以前上传过一个,不知为何这个现在一直删不掉)
如下图,在左边选择configure-->data sources-->add data source
然后填入基本的信息,如本人的数据库,点击Test Connection。成功的话会有测试成功的提示
数据源这样就配好了,接下来我们要创建一个Data Service,如下图所示,services-->add-->data service-->generate,选择刚才创建的数据源,为了方便记忆,在数据库名那边填入所连接的数据库。点击next。
选择一个Schema
点击下一步后发现在里面的表都列出来了,之后我们选择需要创建data service的表,点击下一步
这边有单服务跟多服务两种,选择单服务的话会把所有表生成的方法在一个service里发布,多服务就是每个表对应一个service。单服务的话需要自己填写服务名,多服务则默认以表名加下划线加DataService来命名。看需要自己选择。命名空间也看需要自己填。
点击next,data service就生成完毕
刷新几次页面,生成的data service就出现了。