华为短信接口问题

  公司做大了服务必定会回退,这点我是深有体会,在一次项目实施中要用到华为的短信接口,我们是j2ee的项目,华为提供java的短信调用接口,文档也还可以,但问题出在了jar包上。api的调用其实不难理解,api只是提供一些开放的接口出来,真正的业务代码还在应用平台那里,可是华为提供的这个api有23M,我的天,和一个项目整个大小差不多了,我当时就感觉有点不对劲,打开jar包看了一下,乱七八糟什么都有,servlet的源码、jdbc的源码、xml的源码.......build.xml等一些无用的东西都被打了进去,在项目中发送短信页面报错,后台什么也不显示,无语中......,怎么也找不出问题,而且短信调用的方法断点都跟不进去,真是奇怪......,后来无意间看到webserver启动时报not loaded SMSendAPI.jar,我靠,这个问题烦了我三天时间,同样是放在WEB-INF/lib下的jar,为什么就只有华为的jar无法被webserver加载呢?联系他们工程师后得到的回复是,把SMSend.jar放到webserver的公享lib下,我照着做了还是不行,而且webserver这次无法启动了,包有冲突,我很是无语。后来让建个普通的java工程测试通过,很明显是jar包里的东西和webserver的类库有冲突,可是他们工程师却说他们新建个web项目,只放他们的jar包是可以测试通过的,再次无语,我总不能把我项目下的jar包全删了吧。 ,后来我就对他们提供的jar包进行研究,发现很多类在执行过程中根本没有用到,我就一个个地删,但不管删哪个启动都会报错,后来一气之下将除了com包以外的所有文件都删了,结果成功启动,而且短信发送也没问题了。

  下面是我的短信调用代码,具体参数说明我就不一一解释了,如果你有用到他们会提供api文档,里面有解释。此处主要是说明在web项目中无法使用的问题,欢迎大家交流。

 

        SMAPIConfig.setConfigFilePath(path); // 设置smsendsql.xml所在路径
        
        try {
            SMEntry.init(dbName, name, pwd);
            SMEntry.logIn(userName, userPwd);

            java.util.Date atTime = new java.util.Date();
            String sourceAddr = "xxxxx"; // 短信源地址
            int needStateReport = 0;  // 是否需要状态报告
            String serviceID = "API";  // 业务类型
            String feeType = "01";  // 资费类型
            String feeCode = "10";

            int id = SMEntry.submitShortMessageState(atTime, sourceAddr, destNo, msg, needStateReport, serviceID, feeType, feeCode);
            System.out.println("message state id=" + id);
            
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }finally{
            try {
                SMEntry.cleanUp();
            } catch (SMException e) {
                e.printStackTrace();
            }
        }
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值