一、项目介绍
1.1 项目简介
基于SOA的分布式电商客户端系统,各服务和总线之间采soap1.2协议。
1.2 采用关键技术
-
CXF3.7框架
-
Spring
-
JSP&Servlet
-
JSTL
-
EL表达式
-
c3p0连接池
-
DbUtils数据访问框架
-
BeanUtils
-
jQuery
-
Ajax
-
自定义事务管理机制MannagerThreadLocal
-
SOAP1.2协议
1.3 开发环境
-
jdk1.7
-
tomcat8.5、8.0
-
MySql5.5.27
-
MyEclipse Enterprise Workbench 2017 CI 7
-
字符集编码:utf-8
1.4 项目演示
二、源码简析
2.1 架构设计
ws-fruitshop-bus | 总线 |
---|---|
ws-fruitshop-fruit | 提供水果服务 |
ws-fruitshop-order | 提供订单服务 |
ws-fruitshop-user | 提供用户服务 |
2.2 接口描述
服务接口 | 方法 | 描述 | 发布地址 | 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 |
注意:
-
在步骤“3”中讲到,所有服务的客户端代码已经生成,并且以java源代码的形式添加到相应项目的相应包中。当然,可按照该文档“webservice服务生成客户端并部署”进行重新生成。生成之后在替换相应包中的源码即可,所以下面给出各项目用到其他外部服务的客户端代码所放的位置
- 在ws-fruitshop-bus中com.fruitshop.fruit.service存放ws-fruitshop-fruit提供的FruitServiceInterface服务。com.fruitshop.order.service存放ws-fruitshop-order提供的OrderServiceInterface服务。com.fruitshop.user.service存放ws-fruitshop-user提供的UserServiceInterface服务
- 在ws-fruitshop-order中com.fruit.service2存放ws-fruitshop-fruit提供的FruitServiceInterface2服务
-
各服务提供方的发布地址也是能修改的,例如:http://127.0.0.1:8084/ws-fruitshop-fruit/ws/fruit?wsdl
- ‘127.0.0.1’ 是服务发布的服务器地址
- ‘8084’是服务器发布服务的相应端口号
- ‘ws-fruitshop-fruit’是服务项目名称
- ‘ws’是CXF的servletd的url-pattern,可在WebRoot/WEB-INF/web.xml中修改
- ‘fruit’是服务接口的地址可在config/applicationContext.xml中配置