程序猿阵线联盟-汇总各类技术干货饥人谷技术博客技术干货

Java项目间通过文件调用方法工具(frequest)

2017-09-19  本文已影响0人  BrightLoong

以下内容是frequest这个项目的README.md文件的内容。

Build StatusBuild Status Maven CentralMaven Central JavadocsJavadocs Hex.pmHex.pm

一.简介

这是一个用JAVA编写的,可以通过文件进行方法调用请求传输的工具。

项目gitgub地址:https://github.com/BrightLoong/frequest

二.背景

之前在项目中遇到一下的需求,如图所示: 甲处要访问部署在乙处的服务serverB(因为数据库在乙处),不过因为一些限制原因导致甲乙两地的网络不通。但是甲乙两地之间有一个文件传输的系统仅仅可以进行文件的传输交换。

基于以上的条件,考虑在甲地也搭建一个同样的服务serverA(A和B相同,并都加入对请求的处理),。但是过滤它对service层的调用,将方法调用放入文件中(也就是请求文件中),然后将文件发送到乙地对应目录(文件发送的功能并不由这两个系统负责)。serverB将解析文件的请求,调用对应方法,并将结果也存到文件中发送到甲的服务器serveA处,实现请求的响应。

这里把拦截本地方法调用,生请求文件,等待远端返回结果和远端响应文件请求并将结果生成问文件的功能抽取出来,并对这部分功能进行了提炼重构,修改了一些问题,形成了工具frquest(file-request)。

项目背景项目背景

三.具体思路

实现思路实现思路

甲:本地服务,需要点去远端服务乙

乙:远端服务,可自己访问自己,亦可以接收甲的请求

四. 使用

可在java项目中使用。

1. 引用

注:如果是java项目需要继承aspectj环境,如果是集成了spring的web项目需要开启aspectj支持

2. 配置发送接收文件的目录

请求端的发送目录是指拦截请求生成的请求文件,接收目录是指发送请求后等待接收的结果文件的目录。

远端的发送目录是值生成的结果文件的发送目录,接收目录是指扫描请求端的请求文件的目录。

项目中使用了xml配置的方式,格式如下。

注:本工具不负责文件的传输,所以如果想用该工具在本机做测试,可以把远端和请求端的send-path和receive-path交替配置

<?xml version="1.0" encoding="UTF-8"?>
<configs>
    <config>
        <send-path>d:\send</send-path>
        <receive-path>d:\receive</receive-path>
    </config>
    <!--远端可以配置多个config,可能会有多个请求端需要同一个远端响应,请求端配置多个也默认只取第一个-->
    <config>
        <send-path>d:\send</send-path>
        <receive-path>d:\receive</receive-path>
    </config>
</configs>

3. 请求端(被拦截端)配置

4. 远端(相应文件请求端)配置

5. 其他配置

下面的配置具有默认值,所以不进行配置也是可以的。

//设置休眠时间sleepTime,设置等待结果次数300次
 NormalConfig.getInstance().setSleepTime(100).setWaitCount(300);

五. LICENSE

遵循Apache License 2.0

上一篇 下一篇

猜你喜欢

热点阅读