参考:资源迁移接口文档
一、引用方式
外部调用资源迁移需要引用的jar包:gez_resMigrate-1.0.jar
1.1 资源迁移项目的servlet配置
<servlet-name>MisMoveServlet</servlet-name> <servlet-class>com.runqianapp.etl.servlet.MisMoveServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MisMoveServlet</servlet-name> <url-pattern>/MisMoveServlet</url-pattern> </servlet-mapping> |
1.2 servlet动作参数
类别 |
参数 |
值 |
值说明 |
资源导出 |
action |
exportResourceAction |
资源导出动作标识 |
param |
{ “dirIds”:”11012,12301”, “resIds”:”12322,11034”, “dataRootName”:”oracle,mis2datasource”, “dataSetName”:”demo_area,demo_res”, “targetZipName”:” 导出测试”, “targetZipDir”:”e:/exportDir”, “nameAddTime”:”0” “cDir”,”false”, “cRes”,”false” } |
参数是json格式的数据,发送前需要对整个参数进行base64编码,参数说明: dirIds:导出目录的ID,多个用逗号分隔。 resIds:导出资源的ID,多个用逗号分隔。 dataRootName:导出数据源的名称,多个用逗号分隔。 dataSetName:导出数据集的名称,多个用逗号分隔。 targetZipName:导出的资源包名称。 targetZipDir:资源包导出到服务器的地址。 nameAddTime:导出资源包名称是否添加时间戳,添加时值为1,不添加为0。 cDir:导出是否包含子目录,包含为true,否则为false。 cRes:导出是否包含子资源,包含为true,不包含为false。 |
|
资源直迁 |
action |
exportResourceAction |
资源直迁动作标识 |
|
param |
{ “dirIds”:”11012,12301”, “resIds”:”12322,11034”, “dataRootName”:”oracle,mis2datasource”, “dataSetName”:”demo_area,demo_res”, “targetZipName”:” 导出测试”, “targetZipDir”:”e:/exportDir”, “nameAddTime”:”0” “cDir”,”false”, “cRes”,”false” } |
参数和导出相同,具体说明见资源导出部分。 |
serverPath |
http://192.168.1.10:8800/reportmis |
资源迁移到目标服务器的应用地址 |
|
resID |
11782 |
资源需要迁移到的目标服务器资源目录ID |
|
sameName |
trur/false |
迁入时是否覆盖同名数据源数据集 |
|
unChangeId |
trur/false |
迁入时保持资源ID不变 |
|
unChangeDir |
trur/false |
迁入时保持目录一致 |
|
资源导入(判断是否有重复) |
action |
getExistResParseInfo |
当保持资源ID不变时先提交该请求 |
|
params |
{ “sourceFilePath”:”d:/test.zip”, “resourceDir”:”12322”, “sameName”:” true”, “unChangeId”:”true”, “unChangeDir”:”true” } |
参数是json格式数据,需要base64进行编码。参数说明: sourceFilePath:资源包位置。 resourceDir:导入到的目录资源ID. SameName:是否覆盖已有数据源数据集。 unChangeId:是否保持资源ID不变。 unChangeDir:是否保持目录一致。 |
资源导入 |
action |
importResourceAction |
执行导入 |
|
params |
{ “sourceFilePath”:”d:/test.zip”, “resourceDir”:”12322”, “sameName”:” true”, “unChangeId”:”true”, “unChangeDir”:”true” } |
和导入时的重复判断相同 |
existResParseInfo |
[{resId:12332,isCover:"true"}, {resId:14234,isCover:"false"} ] |
重复资源的处理方式,数据格式为json格式。 resId:资源ID. isCover:是否覆盖。 |
二、API说明
2.1 资源导出
导出调用方法:
ExportResourceAction export = new ExportResourceAction();
export.execute(request,jsResult);
ExportResourceAction类说明:
类路径:com.runqianapp.etl.action. ExportResourceAction
Execute方法如下:
/**
* 执行资源导出动作
*@param HttpServletRequest request 从reques中拿到前端传进来的数据
* 主要参数是param,参数值是被base64编码过的json格式数据,解码后如:
{
“dirIds”:”11012,12301”,
“resIds”:”12322,11034”,
“dataRootName”:”oracle,mis2datasource”,
“dataSetName”:”demo_area,demo_res”,
“targetZipName”:” 导出测试”,
“targetZipDir”:”e:/exportDir”,
“nameAddTime”:”0”
“cDir”,”false”,
“cRes”,”false”
}
资源直迁时,还需要参数为:
serverPath、resId、sameName、unChangeId、unChangeDir等参数。
* @param JSONObject resultJson 将需要返回的一些数据添加到json中,便于返回,直迁时会将资源重复的信息添加到json中
* @throws GeeznException 执行导出过程中出现的异常
*/
public void execute(HttpServletRequest request,JSONObject resultJson) throws GeeznException
说明:资源直迁和资源导出发送使用同一个请求,直迁是将导出的资源包发送到目标服务器之后,执行导入操作。
2.2 资源导入
资源导入时,如果选中资源ID不变,则会先发送请求判断要导入的资源是否和目标系统已有的资源存在相同的资源ID和同目录下的同名资源时会的到相关的信息,返回给前端,在前端进行选择是否覆盖对应的资源,然后发送请求执行导入。
执行资源重复判断调用方法:
ImportResourceAction importAct = new ImportResourceAction();
String result = importAct.getExistResParseInfo(request);
ImportResourceAction类路径:
com.runqianapp.etl.action. ImportResourceAction
判断具体方法:
/**
* 得到要导入资源是否存在相同的资源ID,并返回对应的信息,让用户选择处理方式
* @param request HttpServletRequest
* @throws GeeznException
*/
public String getExistResParseInfo(HttpServletRequest request)throws GeeznException
执行导入的方法:
/**
* 执行平台资源导入的统一入口
* 根据需要导入的资源包路径,对资源包进行解析导入;
* 可以同时导入一个或多个资源包,多个资源包的路径用分号分隔
* @param request HttpServletRequest 获得前端传入的资源包路径等信息
* @throws GeeznException 执行导入资源过程中可能出现的异常
*/
@SuppressWarnings("unchecked")
public void execute(HttpServletRequest request) throws GeeznException