- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 开始使用ROMA Connect
- 实例管理
- 集成应用管理
-
数据源管理
- ROMA Connect支持的数据源
- 接入API数据源
- 接入ActiveMQ数据源
- 接入ArtemisMQ数据源
- 接入DB2数据源
- 接入DIS数据源
- 接入DWS数据源
- 接入DM数据源
- 接入Gauss100数据源
- 接入FTP数据源
- 接入HL7数据源
- 接入HANA数据源
- 接入HIVE数据源
- 接入LDAP数据源
- 接入IBM MQ数据源
- 接入Kafka数据源
- 接入MySQL数据源
- 接入MongoDB数据源
- 接入MQS数据源
- 接入MRS Hive数据源
- 接入MRS HDFS数据源
- 接入MRS HBase数据源
- 接入MRS Kafka数据源
- 接入OBS数据源
- 接入Oracle数据源
- 接入PostgreSQL数据源
- 接入Redis数据源
- 接入RabbitMQ数据源
- 接入RocketMQ数据源
- 接入SAP数据源
- 接入SNMP数据源
- 接入SQL Server数据源
- 接入GaussDB(for MySQL)数据源
- 接入WebSocket数据源
- 接入自定义数据源
- 数据集成指导
- 服务集成指导
- 服务集成指导(旧版界面)
- 消息集成指导
- 设备集成指导
- 应用业务模型使用指导
- 扩大资源配额
- 查看审计日志
- 查看监控指标
- 权限管理
- 用户指南(新版)
- 最佳实践
-
开发指南
- 数据集成开发指导
-
服务集成开发指导
- 开发说明
- API调用认证开发(APP认证)
- API调用认证开发(IAM认证)
-
自定义后端开发(函数后端)
- 函数后端脚本开发说明
- AesUtils类说明
- APIConnectResponse类说明
- Base64Utils类说明
- CacheUtils类说明
- CipherUtils类说明
- ConnectionConfig类说明
- DataSourceClient类说明
- DataSourceConfig类说明
- ExchangeConfig类说明
- HttpClient类说明
- HttpConfig类说明
- JedisConfig类说明
- JSON2XMLHelper类说明
- JSONHelper类说明
- JsonUtils类说明
- JWTUtils类说明
- KafkaConsumer类说明
- KafkaProducer类说明
- KafkaConfig类说明
- MD5Encoder类说明
- Md5Utils类说明
- QueueConfig类说明
- RabbitMqConfig类说明
- RabbitMqProducer类说明
- RedisClient类说明
- RomaWebConfig类说明
- RSAUtils类说明
- SapRfcClient类说明
- SapRfcConfig类说明
- SoapClient类说明
- SoapConfig类说明
- StringUtils类说明
- TextUtils类说明
- XmlUtils类说明
- 自定义后端开发(数据后端)
- 后端服务签名校验开发
- 消息集成开发指导
- 设备集成开发指导
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 公共资源API
- 数据集成API
- 服务集成API
- 消息集成API
- 设备集成API
- 应用示例
- 权限和授权项
- 附录
- 历史API
- 修订记录
- SDK参考
-
常见问题
- 实例管理
-
数据集成
-
数据集成普通任务
- FDI各类数据库支持哪些数据类型?
- 跟踪号是什么,能跟踪到数据吗?
- FDI任务是否支持清空目标表?
- FDI任务只能采集单张表到单张表吗?
- 用户创建的FDI任务,同一账号的其他用户可见吗?
- FDI通过公网对接其他租户的MRS HIVE如何配置?
- 从OBS解析文件到RDS数据库,采集过一次后,后面采集会进行更新吗?
- OBS源端的CSV文件解析到关系型数据库时,列的值不对怎么办?
- MRS Hive目标字段和源端字段数据类型不匹配时,数据是否能集成到目标端?
- MRS Hive、MRS HBase和MongoDB的Mapping映射手动输入时,是否区分大小写?
- MRS Hive是否支持分区?
- 源端API类型数据源自定义周期如何设置?
- SAP是否支持分页读取视图?
- 数据集成组合任务
-
数据集成普通任务
- 服务集成
- 消息集成
- 设备集成
-
故障排除
-
数据集成任务
- MRS Hive目标端写入时出现数据乱码
- MRS Hive写入时数据全部写在第一个字段里
- 目标端任务报任务运行超时
- MySQL到MRS Hive时目标端报“could only be written to 0 of the 1 minReplication nodes. There are 2 datanode(s) running and 2 node(s) are excluded in this operation”错误
- Mysql到Mysql时源端报“Illegal mix of collations for operation 'UNION'”错误
- 源端Mysql增量采集每小时执行一次时部分数据丢失
- API到MySQL时源端报“401 unauthorized”错误
- Kafka集到Mysql目标端报“cannot find record mapping field”错误
- API到MySQL的定时任务时会出现源端报“connect timeout”错误
- Kafka到Mysql的实时任务时,MQS中的Topic下有数据,但是FDI任务没有采集到数据。
- Mysql到Mysql的定时任务,源端有类型为tinyint(1),值为2的字段,但是采集到目标端值就变成了1
- 目标端数据源为公网Kafka时,定时任务目标端报“The task executes failed.Writer data to kafka failed”错误
- 数据集成组合任务
- 数据源
- 服务集成
- 设备集成
-
数据集成任务
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
Java SDK使用说明
操作场景
使用Java语言调用APP认证的API时,您需要先获取SDK,然后新建工程或导入工程,最后参考调用API示例调用API。

获取SDK
旧版界面:登录ROMA Connect实例控制台,在“服务集成 APIC > API调用”的“SDK”页签中下载SDK。
新版界面:登录ROMA Connect实例控制台,在“服务集成 APIC > 凭据管理”的“SDKs”页签中下载SDK。
解压后目录结构如下:
名称 |
说明 |
---|---|
libs\ |
SDK依赖库。 |
libs\java-sdk-core-x.x.x.jar |
SDK包。 |
src\com\apig\sdk\demo\Main.java |
使用SDK签名请求示例代码。 |
src\com\apig\sdk\demo\OkHttpDemo.java |
|
src\com\apig\sdk\demo\LargeFileUploadDemo.java |
|
.classpath |
Java工程配置文件。 |
.project |
如果使用maven构建,SDK包中“java-sdk-core-x.x.x.jar”的maven仓库地址为https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/,配置maven源的方法可参见https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=1779。
加入java-sdk-core依赖的maven配置项为:
<dependency> <groupId>com.huawei.apigateway</groupId> <artifactId>java-sdk-core</artifactId> <version>3.0.12</version> </dependency>
导入工程
新建工程
- 打开IntelliJ IDEA,在菜单栏选择“Create New Project”。
- 在右侧栏中选择“Java”,单击“Next”,进入下一页。
图5 New Project
- 保持默认继续单击“Next”,进入下一页,自定义“Project name”,并选择创建工程所在本地目录“Project location”。
图6 新建工程
- 导入Java SDK的“jar”文件。
- 选择“File > Project Structure”,弹出“Project Structure”对话框。
图7 导入jar文件
- 在“Project Structure”对话框中选择“Libraries > + >Java”,界面弹出“Select Library Files”对话框。
- 选择SDK所在目录中“\libs”目录下所有以“jar”结尾的文件,单击“ok”。
图8 选择jar文件
- 选择步骤3已创建的工程,单击“ok”。
图9 选择工程
- 填写jar文件所在目录的名称,单击“Apply > OK”。
图10 jar文件目录
- 完成jar文件导入,导入后目录结构如下图。
图11 目录结果
- 选择“File > Project Structure”,弹出“Project Structure”对话框。
- 新建“Package”及“Main”文件。
- 选择“src”,单击鼠标右键,选择“New > Package”。
图12 新建Package
- 在“Name”中输入“com.apig.sdk.demo”。
图13 设置Package的名称
- 单击“OK”,完成“Package”的创建。
- 选择“com.apig.sdk.demo”,单击鼠标右键,选择“New > Java Class”,在“Name”中输入“Main”单击“OK”,完成“Main”文件创建。
图14 新建Class
- 配置Class。
- 选择“src”,单击鼠标右键,选择“New > Package”。
- 完成工程创建后,最终目录结构如下。
图16 新建工程的目录结构
“Main.java”无法直接使用,请根据实际情况参考调用API示例输入所需代码。
调用API示例
- 示例演示如何访问发布的API。
- 您需要在APIC的管理控制台自行创建和发布一个API,可以选择Mock模式。
- 示例API的后端为打桩的HTTP服务,此后端返回一个“200”响应码及“Congratulations, sdk demo is running”消息体。
- 在“Main.java”中加入以下引用。
import java.io.IOException; import javax.net.ssl.SSLContext; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.conn.ssl.AllowAllHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.SSLContexts; import org.apache.http.conn.ssl.TrustSelfSignedStrategy; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import com.cloud.apigateway.sdk.utils.Client; import com.cloud.apigateway.sdk.utils.Request;
- 创建request,过程中需要用到如下参数,参数值可参考获取API的调用信息获取。
- Key:API所授权凭据的Key。根据实际情况填写。
- Secret:API所授权凭据的Secret。根据实际情况填写。
说明:
认证使用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以AK和SK保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和CLOUD_SDK_SK。
- Method:请求的方法。根据API实际情况填写,示例代码使用“POST”作为样例。
- Url:请求的url,不包含QueryString及fragment部分。域名部分请使用API所在的分组绑定的您自己的独立域名。示例代码使用“http://serviceEndpoint/java-sdk”作为样例。
- QueryStringParam: url携带参数的部分,根据API实际情况填写。支持的字符集为[0-9a-zA-Z./;[]\-=~#%^&_+: "]。示例代码使用“name=value”作为样例。
- Header:请求的头域。根据API实际情况填写,不支持中文和下划线。示例代码使用“Content-Type:text/plain”作为样例。如果API发布到非RELEASE环境时,需要增加自定义的环境名称,示例代码使用“x-stage:publish_env_name”作为样例。
- Body:请求的正文。根据API实际情况填写,示例代码使用“demo”作为样例。
样例代码如下:
Request request = new Request(); try { // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. // Before running this example, set environment variables HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. request.setKey(System.getenv("HUAWEICLOUD_SDK_AK")); request.setSecret(System.getenv("HUAWEICLOUD_SDK_SK")); request.setMethod("POST"); request.setUrl("http://serviceEndpoint/java-sdk"); request.addQueryStringParam("name", "value"); request.addHeader("Content-Type", "text/plain"); //request.addHeader("x-stage", "publish_env_name"); //如果API发布到非RELEASE环境,需要取消本行代码的注释,增加自定义的环境名称 request.setBody("demo"); } catch (Exception e) { e.printStackTrace(); return; }
- 对请求进行签名,访问API并打印结果。
样例代码如下:
CloseableHttpClient client = null; try { HttpRequestBase signedRequest = Client.sign(request); //若使用系统分配的子域名访问https请求的API时,需要取消这两行代码的注释,用来忽略证书校验 // SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).useTLS().build(); // SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, new AllowAllHostnameVerifier()); //若使用系统分配的子域名访问https请求的API时,需要在custom()后添加“.setSSLSocketFactory(sslSocketFactory)”,用来忽略证书校验 client = HttpClients.custom().build(); HttpResponse response = client.execute(signedRequest); System.out.println(response.getStatusLine().toString()); Header[] resHeaders = response.getAllHeaders(); for (Header h : resHeaders) { System.out.println(h.getName() + ":" + h.getValue()); } HttpEntity resEntity = response.getEntity(); if (resEntity != null) { System.out.println(System.getProperty("line.separator") + EntityUtils.toString(resEntity, "UTF-8")); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (client != null) { client.close(); } } catch (IOException e) { e.printStackTrace(); } }
- 选择“Main.java”,单击鼠标右键,选择“Run As > Java Application”,运行工程测试代码。
图17 运行工程测试代码
- 在“Console”页签,查看运行结果。
图18 调用成功后的返回信息