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就更加简单 ...
随机推荐
- Cleaner, more elegant, and wrong(msdn blog)
Cleaner, more elegant, and wrong Just because you can't see the error path doesn't mean it doesn't e ...
- 通过js添加的元素点击事件无法触发
var blk_have ='<div class="sw-off"></div>'; $('#blk').prepend(blk_have); $(doc ...
- 2、公司部门的组成 - CEO之公司管理经验谈
今天讲讲公司部门的组成.公司部门一般是根据公司业务来进行划分的,IT企业和其它企业的部门划分有一定的区别.企业部门的划分还是比较重要的,部门主要明确各部门所具有的自己的职责.这里对IT企业的部门做了一 ...
- 巧用php中的array_filter()函数去掉多维空值
一直一维array_filter() 函数只能去除一维数组,其实这个函数也能去除多维数组: $arr =[ '0'=>array(), '1'=>'false', '2'=>'tes ...
- Numpy
一 : 安装ipython以及用到的包介绍 # 这里我们会用到ipython解释器,本文代码在ipython下运行 Pip3 install ipython Pip3 install jupyter ...
- EditTable-V1.0--续集
上一个功能有点少,这个V1.0版本是最小集合的. ================================= 双击单元格编辑,可以添加,删除单元格.并且保持相邻单元格不同的背景色. 引用了“M ...
- struts实现文件上传和下载。
先来实现上传. 写上传不管语言,都要先注意前端的form那儿有个细节. <form name="form1" method="POST" enctype= ...
- 2、ABPZero系列教程之拼多多卖家工具 更改数据库为Mysql
因为要部署项目到云服务器,不想在服务器上装SqlServer,所以需要把项目改为Mysql. 项目初始化 1.下载项目压缩包,前面文章已经说到,可以加群到群文件里下载.解压缩下载的项目源码,使用VS2 ...
- 利用树莓派实现监控系统二(用motion实现监控)
终于要开始实现监控啦!ಠ౪ಠ 看起来很简单的步骤,但是过程却无比艰辛,踩坑是最好的成长 (/= _ =)/~┴┴ 第一步,不是安装!而是 update!ㄟ( ▔, ▔ )ㄏ sudo apt-get ...
- MDK C++中对内联的极度优化
先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable ...

