# 功能界面

通过菜单【我的系统】->【系统名称】->【注册服务】,打开功能界面,如图:

【注册服务】的主要功能有:增加模块、增加服务、修改、删除、迁移、另存为、调试和测试等功能。

# 增加模块

点击【增加模块】按钮,在弹出的对话框中录入模块名称,模块描述,如图:

本例子增加的模块名称是 mdl_test,录入成功后,在系统源码目录下会生成 modules/mdl_test 文件夹。

# 增加服务

在左侧列表中选择模块,点击【增加服务】按钮,在弹出的对话框中录入服务名称,服务描述,如图:

然后,分别点击请求参数、响应结果文本框右边的按钮,在弹出的对话框中选择相应的数据对象

请求参数:

响应结果:

本例子录入的服务名称为:svc_test_query_function;请求参数是 SVC_REQUEST_OBJ< SYS_FUNCTION > 路由表对象,响应结果是一个列表 SVC_RESPONSE_OBJ< vector< SYS_FUNCTION >>。

# C++ 服务代码

如果是 C++ 服务,则在系统源码目录生成服务同名的 *.hpp 文件: modules/service/svc_test_query_function.hpp,如图:

服务函数的原型为:

int svc_test_query_function(const string &in_data, string &out_data, const string &request_msg)

参数说明:

• in_data:服务请求参数数据对象 SVC_REQUEST_OBJ< SYS_FUNCTION > 的 Json 字符串;

• out_data:服务响应结果数据对象 SVC_RESPONSE_OBJ< vector< SYS_FUNCTION >> 的 Json 字符串;

• request_msg:为 http 请求头部的数据对象 SVC_REQUEST_MSG 的 Json 字符串。SVC_REQUEST_MSG 的结构详见数据表结构文件 model/tb_struct.hpp。

# Java 服务代码

如果是 Java 服务,则在系统源码目录生成服务同名的 *.java 类文件: src/main/java/kmyckj/prj_java/services/svc_test_query_function.java,如图:

java服务的方法名统一为 exec_svc,如:

public String exec_svc(final String in_data, final String http_headers)

参数说明:

• in_data:服务请求参数数据对象 SVC_REQUEST_OBJ< SYS_FUNCTION > 的 Json 字符串;

• http_headers:为 http 请求头部的数据对象 HttpHeaders 的 Json HttpHeaders 的结构详见数据表结构文件 src/main/java/kmyckj/prj_java/model/HttpHeaders.java;

• exec_svc()方法的返回结果:为服务响应结果数据对象 SVC_RESPONSE_OBJ< List< SYS_FUNCTION >> 的 Json 字符串。

# 编译 C++ 服务

在服务模块的目录下执行 make 命令:

make
1

如图:

编译成功后,在 bin/lib/kmyckj/prj_c/ 目录下生成跟模块名称同名的动态库文件,如:

libmdl_test.so

# 编译 Java 服务

通过 Maven 对 Java 项目进行打包,如图:

打包成功后,在 bin/lib/kmyckj/prj_java/ 目录下生成2个与项目同名的 *.jar 包文件,如:

prj_java-1.0-jar-with-dependencies.jar

prj_java-1.0.jar