WebService短信网关配置
第一步: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短信网关配置的更多相关文章
- jquery ajax跨域请求webservice webconfig配置
<configuration> <system.web> <compilation debug="true" targetFramework=&quo ...
- 使用WCF和WEBService出现配置的问题
错误代码:system.serviceModel/bindings/customBinding 处的绑定没有名称为"SMSServiceServiceSoapBinding"的已配 ...
- kettle的HTTPPOST控件发送WSDL的webservice请求配置
1.webservice请求的URL:http://pubservice.rjhn.com.cn/AppserviceTest/JsonWcfService.svc?WSDL 2.使用SOAPUI测试 ...
- ajax跨域请求webservice webconfig配置
<configuration> <system.web> <compilation debug="true" targetFramework=&quo ...
- WebService "因 URL 意外地以 结束,请求格式无法识别" 的解决方法
最近在做一个图片上传的功能,js调用用webservice进行异步访问服务器,对于不是经常用webservice的菜鸟来说,经常会遇到以下的问题(起码我是遇到了) 在页面上写了js调用代码如下所示: ...
- 史上最详cxf-Springmvc-maven实现webservice教程(转)
虽知道webservice,工作两年一直没使用过,最近不忙趁机研究了下,实现了简单的服务端及客户端调用.鉴于慕课网没有webservice的教程,大多又都是学生,就在这里跟大家分享下,内容比较详细.大 ...
- webservice的Axis2入门教程java版
本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebServi ...
- Android webservice的用法详细讲解
Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...
- Spring 3 整合Apache CXF WebService[转]
http://www.cnblogs.com/hoojo/archive/2012/07/13/2590593.html 在CXF2版本中,整合Spring3发布CXF WebService就更加简单 ...
随机推荐
- 编译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 ...
- python 小脚本升级-- 钉钉群聊天机器人
一则小脚本(工作中用) 在这篇文章中写的监控的脚本,发送监控的时候 是利用的邮箱,其实在实际,邮箱查收有着不方便性,于是乎升级, 我们工作中,经常用钉钉,那么如果要是能用到钉钉多好,这样我们的监控成功 ...
- 百度图表插件echart简单应用,简单配置一些要显示的样式及种类
从echart官网下载js,然后引入jq即可运行.足够简单应用了 关键词:echart控制:图标标题.数据标题.折线图.柱状图切换按钮.恢复刷新图表按钮.保存为图片按钮.坐标系控制.坐标数据.坐标倾斜 ...
- JavaScript的DOM编程--02--获取元素节点
如何来获取元素节点: 1) .document.getElementById: 根据 id 属性获取对应的单个节点 2) .document.getElementsByTagName: 根据标签名获取 ...
- thinkphp 3.1.3 redis 只能读取 无法写入的问题
找到thinkphp的目录 thinkphp\Extend\Driver\Cache 下面的Redis 大概在81行足有 // if(is_int($expire)) { // redis ...
- thinkinginjava学习笔记01_导论
初学java,希望旅途愉快 :) 类型决定对象的接口,(有人认为类是类型的特定实现),接口确定对象所能发出的请求(消息),满足请求的代码和隐藏的数据一起构成实现: 对象设计时,应该很好地完成一项任务 ...
- linux ext4无法使用超过16T磁盘的解决办法
大磁盘使用问题 问题:当所要挂载的设备大于16T的时候,可以用parted正常分区,但是分区完成之后,无法格式化, 报错:Size of device /dev/sdb1 too big to be ...
- python 打印几行空行、 打印不换行
2.x版本中使用print '\n' * n #n为行数 3.x版本中使用print('\n' * n) #n为行数 print 'Hello', :不会换行.[加上逗号(,)]
- 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 ...
- 高通msm8909耳机调试
http://blog.csdn.net/mike8825/article/details/69489865?locationnum=3&fps=1 1.DTS相应修改: DTS相关代码:ke ...

