当前这个项目的部署,是为了解决消息推送的问题而开发出来的。在配置整个项目使其可以运行的过程中,包括很多程式化的步骤,在此记录一下。
此项目包括接口包、服务包,接口包给服务的调用方(客户端)调用使用,而服务端独立运行服务。它们之间的协调方式是通过apache的sca来实现的。配置大致步骤如下:
1、定义如下project:
- analyse-mongodb-core(接口包)
- analyse-mongodb-service(服务包)
2、analyse-mongodb-core的结构
package model:mongo的映射对象,一个对象对应着一个collection,关于对象嵌套的复杂存储方式此处不详细说明。
package model.converter:保存到db过程中,负责对对象的字段编码进行转换工作,也可做其他工作。
service:服务接口
3、analyse-mongodb-service的结构
package service:实现了core包中的对应的接口
package server:服务启动类
mongo.properties:mongodb的数据库配置信息
server.composite:sca的服务端配置信息,其中包括如下特殊配置
<?xml version="1.0" encoding="UTF-8"?> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:scallop="http://scallop/xmlns/sca/1.0" targetNamespace="http://AnalyseUserPopupComponent" xmlns:sample="http://AnalyseUserPopupComponent" name="AnalyseUserPopupComponent"><!--配置AnalyseUserPopupComponent,调整成本服务需要的名称--> <component name="AnalyseUserPopupComponent"> <implementation.spring location="META-INF/mongo/spring-mongo-config.xml" /><!--设置需要加载的spring容器名称--> </component> <service name="meetingService" promote="AnalyseUserPopupComponent/meetingService"><!--设定名称--> <interface.java interface="com.gemantic.analyse.mongodb.service.UserPopupService" /><!--设定服务接口名称,以及路径--> <scallop:binding.rmi host="localhost" port="8854" serviceName="UserPopupRMIService" /><!--设定地址、端口号和服务名称--> </service> </composite>
spring-mongo-config.xml容器:配置sca、mongodb等信息。见《spring-db-mongo配置 》博客的内容。
4、配置wiki中的内容:
308 | analyse-mongodb-service | analyse-mongodb-service | 10.0.0.105 | 10.0.0.22 | 8854 | analyse-userPopup-mongodb-service-rmi | 使用 |
5、配置数据库:
数据库:10.20,resources库的resources表,增加一条记录
697 | || analyse-userPopup-mongodb-service-rmi | || 10.0.0.22:8854 |
6、修改report-warning-etl项目
此项目是实现了对推送服务接口的调用,向推送库插入提醒信息的功能。
修改PopupPortfoliosServiceImpl类文件:修改userPopupService、userPopup的引用路径
修改pom.xml文件:项目里面增加analyse-mongodb-core的maven资源路径。
修改server.properties文件,调整关于userPopupService的相关配置。
修改applicationContext-server.xml:修改里面关于userPopupService的引用路径
7、修改analyse-home项目
此项目是一个网站项目,对使用用户提供界面和操作功能,修改其中的推送功能。
修改pom.xml文件,增加对analyse-mongodb-core的maven资源路径的引用。
修改client.composite文件,调整关于userPopupService的相关配置。
修改applicationContext-sca.xml文件:调整关于UserPopupService的相关配置。
修改MeetingController类文件:修改关于userPopupService、userPopup的引用路径问题,同时,修改代码:
List<UserPopup> userPopups = userPopupService.getUserPopupIdsByOrgTypeAndUserCodeAndPublishAtOrderByPublishAt(orgType, userCode, start, end, (currentPage - 1) * pageCount, pageCount, true);
//以下是新加代码
for(UserPopup tmp:userPopups){
ids.add(tmp.getPopupId());
}
//新加结束
//以下是注释掉的代码
// if (CollectionUtils.isNotEmpty(userPopupIds)) {
// List<UserPopup> userPopups = userPopupService.getObjectsByIds(userPopupIds);
// //使用工具类目前不能保证排序
Map<Long, UserPopup> map = MyListUtil.convert2Map(UserPopup.class.getDeclaredField("popupId"), userPopups);
// for(UserPopup userPopup : userPopups){
// ids.add(userPopup.getPopupId());
// }
//
// }
//注释结束
List<Popup> popups = popupService.getObjectsByIds(ids);