第一步:WebService框架选择【以CXF为例】

1、下载地址:http://cxf.apache.org/download.html,请事先安装好JDK(本人使用的是apache-cxf-2.7.18,JDK1.7)

2、第二步:解压apache-cxf-2.7.11.zip到指定目录,环境变量设置:创建CXF_HOME并加到path下

3、在cmd下加入wsdl2java–h

显示以上结果,成功

第二步:解析wsdl文件

1、使用短信方提供的wsdl地址,右键另存为wsdl文件(以wsdl.wsdl为例)

2、在cmd输入以下命令

wsdl2java -p com.ucp -d D:\\ucp -all D:\\cxf\\wsdl.wsdl  根据D:\\cxf\\wsdl.wsdl文件生成代码,com.ucp是指定包名,方便复制到实际项目中

3、将生成的代码拷贝到实际项目中

第三步:代码导入

一般只需要用到这个ExtCommandServicePortType_ExtCommandServiceHttpPort_Client.java类

package com.ucp;

/**
* Please modify this class to meet your needs
* This class is not complete
*/ import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper; /**
* This class was generated by Apache CXF 2.7.18
* 2017-10-12T11:23:03.075+08:00
* Generated source version: 2.7.18
*
*/
public final class ExtCommandServicePortType_ExtCommandServiceHttpPort_Client { private static final QName SERVICE_NAME = new QName("http://service.message.wiscom.com", "ExtCommandService"); private ExtCommandServicePortType_ExtCommandServiceHttpPort_Client() {
} public static void main(String args[]) throws java.lang.Exception {
URL wsdlURL = ExtCommandService.WSDL_LOCATION;
if (args.length > 0 && args[0] != null && !"".equals(args[0])) {
File wsdlFile = new File(args[0]);
try {
if (wsdlFile.exists()) {
wsdlURL = wsdlFile.toURI().toURL();
} else {
wsdlURL = new URL(args[0]);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
} ExtCommandService ss = new ExtCommandService(wsdlURL, SERVICE_NAME);
ExtCommandServicePortType port = ss.getExtCommandServiceHttpPort(); {
System.out.println("Invoking createMo...");
java.lang.String _createMo_in0 = "";
java.lang.String _createMo_in1 = "";
java.lang.String _createMo_in2 = "";
java.lang.Long _createMo__return = port.createMo(_createMo_in0, _createMo_in1, _createMo_in2);
System.out.println("createMo.result=" + _createMo__return); }
{
System.out.println("Invoking createMessage...");
com.ucp.ArrayOfString _createMessage_in0 = null;
java.lang.String _createMessage_in1 = "";
java.lang.String _createMessage_in2 = "";
java.lang.String _createMessage_in3 = "";
java.lang.Long _createMessage__return = port.createMessage(_createMessage_in0, _createMessage_in1, _createMessage_in2, _createMessage_in3);
System.out.println("createMessage.result=" + _createMessage__return); }
System.exit(0);
} }

第四步:根据代码的接口调用

推荐使用配置文件加载参数

private static final Logger logger = Logger.getLogger("DefaultSmsSender");
private static String ucpSmsUrl;
private static String ucpMsg;
private static String apiKey;
private static final QName SERVICE_NAME = new QName("http://service.message.wiscom.com", "ExtCommandService"); static {
Properties prop = new Properties();
try {
prop.load(UcpSmsSender.class.getResourceAsStream("/registerConf.properties"));
ucpSmsUrl=prop.getProperty("ucpSmsUrl");
apiKey=prop.getProperty("apiKey");
} catch (IOException e) {
logger.error("加载配置文件异常", e);
}
}

发送短信

 @Override
public boolean send(String mobile, String msg) {
logger.info(String.format("请求发送短信[%s, %s]", mobile, msg));
try {
msg = URLEncoder.encode(msg, "UTF-8");
System.out.println("start to send sms");
String tmp =httpPost(smsUrl, "id="+smsAccount+"&psw="+smsPassword+"&mobile="+mobile+"&msg="+msg);
System.out.println(tmp);
if(tmp!=null&&tmp.contains("\"msg\": \"Success\"")){
System.out.println("success to send sms");
return true;
}
} catch (UnsupportedEncodingException e) {
System.out.println("fail to send sms");
e.printStackTrace();
} return false;
}

根据返回结果,匹配

返回值

错误描述

0

成功

1

提交参数不能为空

2

账号无效,

3

账号密码错误,

4

时间格式不正确,格式为:yyyy-MM-dd HH:mm:ss

20

系统错误

WebService短信网关配置的更多相关文章

  1. jquery ajax跨域请求webservice webconfig配置

    <configuration> <system.web> <compilation debug="true" targetFramework=&quo ...

  2. 使用WCF和WEBService出现配置的问题

    错误代码:system.serviceModel/bindings/customBinding 处的绑定没有名称为"SMSServiceServiceSoapBinding"的已配 ...

  3. kettle的HTTPPOST控件发送WSDL的webservice请求配置

    1.webservice请求的URL:http://pubservice.rjhn.com.cn/AppserviceTest/JsonWcfService.svc?WSDL 2.使用SOAPUI测试 ...

  4. ajax跨域请求webservice webconfig配置

    <configuration> <system.web> <compilation debug="true" targetFramework=&quo ...

  5. WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法

    最近在做一个图片上传的功能,js调用用webservice进行异步访问服务器,对于不是经常用webservice的菜鸟来说,经常会遇到以下的问题(起码我是遇到了) 在页面上写了js调用代码如下所示: ...

  6. 史上最详cxf-Springmvc-maven实现webservice教程(转)

    虽知道webservice,工作两年一直没使用过,最近不忙趁机研究了下,实现了简单的服务端及客户端调用.鉴于慕课网没有webservice的教程,大多又都是学生,就在这里跟大家分享下,内容比较详细.大 ...

  7. webservice的Axis2入门教程java版

    本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebServi ...

  8. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  9. Spring 3 整合Apache CXF WebService[转]

    http://www.cnblogs.com/hoojo/archive/2012/07/13/2590593.html 在CXF2版本中,整合Spring3发布CXF WebService就更加简单 ...

随机推荐

  1. 编译Twitter的Heron时一直报错“heron/bazel_configure.py", line 25, in <module> import semver ImportError: No module named semver”如何处理。

    今天编译heron的时候,从官方git到的源码bazel_configure的时候一直报错如下: Traceback (most recent call last): File , in <mo ...

  2. python 小脚本升级-- 钉钉群聊天机器人

    一则小脚本(工作中用) 在这篇文章中写的监控的脚本,发送监控的时候 是利用的邮箱,其实在实际,邮箱查收有着不方便性,于是乎升级, 我们工作中,经常用钉钉,那么如果要是能用到钉钉多好,这样我们的监控成功 ...

  3. 百度图表插件echart简单应用,简单配置一些要显示的样式及种类

    从echart官网下载js,然后引入jq即可运行.足够简单应用了 关键词:echart控制:图标标题.数据标题.折线图.柱状图切换按钮.恢复刷新图表按钮.保存为图片按钮.坐标系控制.坐标数据.坐标倾斜 ...

  4. JavaScript的DOM编程--02--获取元素节点

    如何来获取元素节点: 1) .document.getElementById: 根据 id 属性获取对应的单个节点 2) .document.getElementsByTagName: 根据标签名获取 ...

  5. thinkphp 3.1.3 redis 只能读取 无法写入的问题

    找到thinkphp的目录 thinkphp\Extend\Driver\Cache    下面的Redis    大概在81行足有 // if(is_int($expire)) { // redis ...

  6. thinkinginjava学习笔记01_导论

    初学java,希望旅途愉快  :) 类型决定对象的接口,(有人认为类是类型的特定实现),接口确定对象所能发出的请求(消息),满足请求的代码和隐藏的数据一起构成实现: 对象设计时,应该很好地完成一项任务 ...

  7. linux ext4无法使用超过16T磁盘的解决办法

    大磁盘使用问题 问题:当所要挂载的设备大于16T的时候,可以用parted正常分区,但是分区完成之后,无法格式化, 报错:Size of device /dev/sdb1 too big to be ...

  8. python 打印几行空行、 打印不换行

    2.x版本中使用print '\n' * n #n为行数 3.x版本中使用print('\n' * n) #n为行数 print 'Hello',  :不会换行.[加上逗号(,)]

  9. Percona Toolkit 2.2.19 is now available

    New Features: 1221372: pt-online-schema-change now aborts with an error if the server is a slave, be ...

  10. 高通msm8909耳机调试

    http://blog.csdn.net/mike8825/article/details/69489865?locationnum=3&fps=1 1.DTS相应修改: DTS相关代码:ke ...