已经发布到CSB开放平台的服务,能自行生成Java代码。API消费方可直接使用Java代码调用订阅的服务。

背景信息

除本文介绍的使用Java代码调用服务外,CSB目前还支持SDK调用服务和JWT Token调用服务。如果您想要了解更多调用服务的方式,请参见:

准备工作

在调用服务前,请确保您已经完成以下工作:

获取服务访问地址

服务发布到共享实例和专享实例,服务访问地址是不一样的。

  • 获取共享实例的服务地址,请参见共享实例名称和服务访问地址
  • 专享实例的服务地址格式为http://CSB服务地址:8086/CSB
    说明 CSB服务地址即创建CSB实例时绑定的SLB的地址。

    CSB服务地址的获取方式如下:

    1. 使用创建CSB实例的账号登录EDAS控制台
    2. 在左侧导航栏选择组件中心 > 云服务总线
    3. 云服务总线左侧导航栏单击实例管理
    4. 实例列表页面选择目标地域,然后查看并获取目标实例的SLB地址实例列表

获取服务生成代码

  1. 登录CSB控制台
  2. 在顶部菜单栏选择地域。
  3. 在左侧导航栏单击实例列表
  4. 实例列表页面单击具体实例名称。
  5. 在左侧导航栏选择发布者 > 我的服务
  6. 我的服务页面选择目标服务,在该服务的操作列下选择更多 > 生成代码
  7. 生成调用代码页面拷贝并记录CSB-SDK依赖Java代码

调用服务

本示列以在IntelliJ IDEA创建工程,使用服务生成代码调用服务为例。

  1. 打开IntelliJ IDEA,并创建一个工程。
  2. pom.xml文件中添加保存的CSB-SDK依赖
    <dependency>
        <groupId>com.alibaba.csb.sdk</groupId>
        <artifactId>http-client</artifactId>
        <version>1.1.5.8</version>
    </dependency>
  3. 在应用中添加保存的Java代码,并设置入参的值。
    本示例以发布的RESTful服务生成的Java代码为例:
    public static void main(String[] args) {
        Map<String, Object> params = new HashMap<>();
        params.put("name", "name");
        params.put("times", 0);
        params.put("sleepMSeconds", 0);
    
        HttpParameters.Builder builder = HttpParameters.newBuilder()
        .requestURL("http://192.168.0.163:8086/CSB")
        .api("http2http1")
        .version("1.0.0")
        .method("POST")
        .contentBody(new ContentBody(JSON.toJSONString(params)));
    
        HttpReturn response = null;
        try {
            response = HttpCaller.invokeReturn(builder.build());
        } catch (HttpCallerException e) {
            throw new RuntimeException(e);
        }
    
        if (response.httpCode == 200) {
            System.out.println("调用CSB服务返回:" + response.getResponseStr());
            String result = response.getResponseStr();
        }
    }
  4. 运行程序,调用服务。
    调用服务返回的结果示列如下:
    200 OK|
    调用CSB服务返回:{"result":"JSON result is: Hello null love null times. jsonbody={"times":12,"name":"name1","sleepMSeconds":0}"}