爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13998|回复: 3

[参考资料] CIMISS接口之Java8+:支持Java8+版本、ICE3.7.3。低于Java8,请使用官方1.6版。

[复制链接]

新浪微博达人勋

发表于 2020-4-3 16:21:18 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 scmeiqy 于 2020-4-4 23:24 编辑

CIMISS接口之Java8+:支持Java8+版本。低于Java8,请使用官方1.6版。

疫情期间,为了完成上级交待的工作:关于CIMISS数据获取方法,给同事们作个培训。
在研究python接口期间,通过读ZeroC ICE官方文档,发现:
利用java8的新特性,其接口使用起来,更加符合人们的思维习惯,比如:以前的
xxxPrx类,必须用xxxHelp类来checkcast,而现在不需要了,interface的Help类,都直接消失了!!!
当然,对异步调用的支持更友好了!

直接上干货:
接口库其实很简单,很简单,很简单……重要的事说三遍:
1、库需要两个文件(全在cimiss_java8_lib.7z中):
ice373.jar  来自官方,可以使用sha1/md5/sha256校验。使用了JAVA8新特性,所以,运行环境需要JAVA8;
cimiss373j8.jar Cimiss接口库,基于JAVA8新特性,所以,运行环境需要JAVA8。
2、程序运行,需要配置文件:client.config
库中不包含(不是我故意不包含,而是基于其jar包的结构特点,不应该包含),在cimiss_java8_demo.7z压缩包中。
如果你下载了python的库包文件,这两个文件是一样的!!原接口库1.6包中的配置文件少了许多项,已不适用于ICE高版本!
3、说明一点:现在的库,我改变了接口包装文件的位置(改变的理由:我把cimiss的python接口,也使用ICE3.6+、python3.6/3.7/3.8环境,全部重新实现了,也改变了接口包装文件的位置,两者统一了):
原位置:cma.cimiss.client.DataQueryClient
新位置:sc.mqy.client.DataQueryClient

下面是demo代码:
import cma.cimiss.RequestInfo;
import sc.mqy.client.DataQueryClient;
import java.util.HashMap;
public class SaveFilesAPI_CLIB_callAPI_to_storeFile {
    public SaveFilesAPI_CLIB_callAPI_to_storeFile() {
    }
    public static void main(String[] args) {
        DataQueryClient client = new DataQueryClient();
        String userId = "user_nordb";
        String pwd = "user_nordb_pwd1";
        String interfaceId = "";
        interfaceId = "saveFiles";
        HashMap<String, String> params = new HashMap();
        params.put("DataCode", "SEVP_CIPAS_TEM_ANOM");
        params.put("Elements", "Datetime,PUBLISH_TIME,FILE_NAME,DATA_CONTENT,DATA_ID,FORMAT,AREA,PRODUCER,DATA_SOURCE,V_FILE_SIZE");
        String[][] inArray2D = new String[][]{{"20151110000000", "20151114060000", "MOP_CHCC_NCEPRA_WMFS_TMP_NH_0_PM_20151110_0000.png", "-", "TEM", "PNG", "NHE", "NCC", "CIPAS", "1222"}, {"20151111000000", "20151114060000", "MOP_CHCC_NCEPRA_WMFS_TMP_NH_0_PM_20151111_0000.png", "-", "TEM", "PNG", "NHE", "NCC", "CIPAS", "1222"}};
        int num = inArray2D.length;
        String[] write_filenames = new String[num];
        String path = "./CIPAS产品";
        for(int i = 0; i < num; ++i) {
            write_filenames = path + "/" + inArray2D[2];
        }
        try {
            client.initResources();
            RequestInfo r = client.callAPI_to_storeFile(userId, pwd, interfaceId, params, inArray2D, write_filenames);
            if (r != null) {
                System.out.println("return code=" + r.errorCode);
                System.out.println("return message=" + r.errorMessage);
            }
        } catch (Exception var14) {
            var14.printStackTrace();
            System.out.println(var14.getMessage());
        } finally {
            client.destroyResources();
        }
    }
}

这个示例代码,能编译通过,但不能运行成功的,因为你没有那个测试环境!!

如果你还在用java6、java7,请停止下载!!!
这个包对于那些气象类开发公司,应该是有用处的————异步、稳定、效率、高可配!!!

cimiss_java8_lib.7z (820.55 KB, 下载次数: 6)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-4-3 16:29:59 | 显示全部楼层
本帖最后由 scmeiqy 于 2020-4-3 16:40 编辑

追加提醒:
1、这个库实现了官方1.6版原库的所有接口!
其demo包中的所有原文件,我全部编译了一遍!不能全部运行——受限于环境!
2、配置文件client.config放置位置,classpath能找到的地方——JAVA的特性!!!
3、1.6版官方接口,在java8版本中同样运行良好!
4、ICE,我使用了目前最新版本:3.7.3。
5、使用本最新接口,我提取过几十年的历史资料,未见异常!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-4-3 16:36:12 | 显示全部楼层
如果,你使用出错,请看看库包的生产日期,04/01,所以应该一笑了之。或者再埋头苦干:)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-12-24 12:40:18 | 显示全部楼层
楼主你好,我用的java1.7版本,run以后脚本显示的运行成功,可就是不生成也找不到所下载的数据,想请教一下这个是因为java版本的原因吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表