Kanagawa
基于SOA的分布式电商客户端系统,各服务和总线之间采soap1.2协议。
CXF3.7框架
Spring
JSP&Servlet
JSTL
EL表达式
c3p0连接池
DbUtils数据访问框架
BeanUtils
jQuery
Ajax
自定义事务管理机制MannagerThreadLocal
SOAP1.2协议
jdk1.7
tomcat8.5、8.0
MySql5.5.27
MyEclipse Enterprise Workbench 2017 CI 7
字符集编码:utf-8
主页
登录
注册
购物车
水果列表
历史订单
ws-fruitshop-bus | 总线 |
---|---|
ws-fruitshop-fruit | 提供水果服务 |
ws-fruitshop-order | 提供订单服务 |
ws-fruitshop-user | 提供用户服务 |
服务接口 | 方法 | 描述 | 发布地址 | Wsdl文件 |
---|---|---|---|---|
UserServiceInterface | login() | 为总线提供登录服务 | http://127.0.0.1:8081/ws-fruitshop-user/ws | UserServiceInterface_wsdl.xml |
UserServiceInterface | regist() | 为总线提供注册服务 | http://127.0.0.1:8081/ws-fruitshop-user/ws | UserServiceInterface_wsdl.xml |
FruitServiceIntergface | findFruitPage() | 为总线提供水果页服务 | http://127.0.0.1:8084/ws-fruitshop-fruit/ws | FruitServiceInterface_wsdl.xml |
FruitServiceIntergface | findFruitById() | 为总线提供查询水果服务 | http://127.0.0.1:8084/ws-fruitshop-fruit/ws | FruitServiceInterface_wsdl.xml |
FruitServiceInterface2 | updateReserve() | 为order服务提供更新水果库存服务 | http://127.0.0.1:8084/ws-fruitshop-fruit/ws | FruitServiceInterface2_wsdl.xml |
OrderServiceInterface | findOrderByUserID() | 为总线提供根据用户ID查找订单服务 | http://127.0.0.1:8087/ws-fruitshop-order/ws | FruitServiceInterface2_wsdl.xml |
OrderServiceInterface | addOrder() | 为总线提供添加订单服务 | http://127.0.0.1:8087/ws-fruitshop-order/ws | FruitServiceInterface2_wsdl.xml |
ws-fruitshop-user项目使用mysql5.5.27
ws-fruitshop-order项目使用mysql5.5.27
ws-fruitshop-fruit项目使用mysql5.5.27
下载cxf框架,并配置系统环境变量。本次开发使用apache-cxf-3.2.7
创建web项目,并导入CXF下lib文件夹里的所有jar包
创建SEI接口,注意加入‘@WebService’标签,如:
将项目部署到tomcat下,启动tomcat
测试服务
WSDL地址规则
如:http://localhost:8081/ws-fruitshop-user/ws
在客户端项目下引入CXF下lib文件夹里的所有jar包
使用CXF提供的wsdl2java工具生成客户端代码
如:wsdl2java -p com.fruitshop.service.user -d . http://localhost:8081/ws-fruitshop-user/ws/user?wsdl
= 配置客户端spring配置文件applicationContent.xml
注:因为在本地测试,所有的服务和总线都部署在本地。
在MyEclipse或Eclipse下打开四个项目
分别右键每个“工程 -> Properties -> Java Build Path -> Add JARs”导入所有“外部jar包”文件夹下的jar包
在项目文件中,已经包含了服务所生成的客户端代码。注意生成的客户端代码还是java源码,并没有进行打包处理,已经导进了项目源码中
向数据库中导入三个数据库脚本fruit.sql、order.sql、user.sql,会生成三个数据库,数据库中已经存在一些开发时测试用的数据
根据本地数据库信息配置ws-fruitshop-fruit、ws-fruit-order和ws-fruit-user三个服务项目src下的c3p0-config.xml
准备4个tomcat服务器,先将提供服务的ws-fruitshop-fruit、ws-fruit-user项目部署在相应的两个服务器上
由于服务项目ws-fruitshop-order和总线ws-fruit-bus都用到了其他服务提供的接口,所以先配置ws-fruitshop-order项目config下的applicationContext.xml的fruit服务地址。只需根据ws-fruitshop-fruit所在服务器的端口号修改端口号即可。配置完成后,将项目ws-fruitshop-order部署在第三个服务器上,并启动
注意:
在步骤“3”中讲到,所有服务的客户端代码已经生成,并且以java源代码的形式添加到相应项目的相应包中。当然,可按照该文档“webservice服务生成客户端并部署”进行重新生成。生成之后在替换相应包中的源码即可,所以下面给出各项目用到其他外部服务的客户端代码所放的位置
各服务提供方的发布地址也是能修改的,例如:http://127.0.0.1:8084/ws-fruitshop-fruit/ws/fruit?wsdl
keyboard_arrow_left上一篇 : 基于SSM架构的网络租车系统 基于c++的扑克牌游戏 : 下一篇keyboard_arrow_right