# 功能界面
通过菜单【我的系统】->【系统名称】->【注册服务】,打开功能界面,如图:
【注册服务】的主要功能有:增加模块、增加服务、修改、删除、迁移、另存为、调试和测试等功能。
# 增加模块
点击【增加模块】按钮,在弹出的对话框中录入模块名称,模块描述,如图:
本例子增加的模块名称是 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
如图:
编译成功后,在 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