ESB数据采集思路

时间:2024-03-02 18:30:32

昨天接到一个任务,使用公司的ESB,调用别人的接口,把得到的数据存储到mysql数据库当中,这里简单记录解决思路,方便以后查看。

 

1.拿到一个网站的地址,使用火狐浏览器的firebug工具,查看其传递的参数、访问的接口以及获得的json格式数据。
1 传递参数
2 time : [2016-05-03T08:00:00,2016-05-04T14:31:00]

 

1 请求地址
2 http://www.qzsdj.gov.cn//xq/water?time=[2016-05-02T08:00:00,2016-05-04T14:31:00]

 

 1 json信息
 2 
 3 *id                "QZST004"                    //测站编号
 4  time              "2016-05-04T14:35:00"    //查询最后定义时间时间
 5  val               398.13                            //最新水位
 6  water_potential   "6"                 //水势(涨、平、落)
 7  capacity          3174.24                    //库容(百万m³)
 8 *name              "东固"                    //测站站名
 9 *lng               118.31                    //x坐标
10 *lat               25.7577                    //y坐标
11 *type              "RR"
12 *type_name         "水库水文站"            
13 *address           "泉州市德化县水口镇"        //所在地址
14 *area_id           "350526"            //身份证前缀
15 *area_name         "德化县"            //所在地区
16  flood_val         409                        //汛限/警戒
17  ensure_val        410                    //正常/保证
18  is_over           false
19 *river_name        "涌溪"                    //河流名称
20 *water_system      "闽江中下游"            
21  town_code         "350526106"        //行政编码
22  town_name         "水口镇"            //乡镇名称
23 
24 
25 *为一定不为null                            

 

2. 使用Java服务生成所需要的参数
 1 // 设置参数time的值
 2         long curtime = System.currentTimeMillis();
 3         Date date = new Date(curtime);
 4         DateFormat df = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss");//自定义时间格式
 5         String a = df.format(date);
 6         String time = "[2016-05-02T08:00:00," + a + "]";
 7         List<Map<String, String>> list = new ArrayList<Map<String, String>>();
 8         Map<String, String> map = new HashMap<String, String>();
 9         map.put("time", time);
10         list.add(map);
11         // 节点输出消息
12         Message outMessage = new DefaultMessage();
13         // 节点输出消息数据
14         outMessage.setBody(list);
15         // 消息载体设置输出消息
16         exchange.setOutMessage(outMessage);

 

1 传递参数
2 time : [2016-05-03T08:00:00,2016-05-04T14:31:00]

 

3.使用http调用去请求数据
4.把jason数据转换成数据库数据
5.把数据库数据存储到mysql当中

流程图如下: