java程序怎么调用webservice接口,实现发送短信功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java程序怎么调用webservice接口,实现发送短信功能相关的知识,希望对你有一定的参考价值。

给你一个最简单的方法:
第一、根据http://134.224.102.6:80/CompanySendSmInf/services/SmsInf?wsdl 拿到WSDL文件。
第二、根据Axis的jar包,把WSDL文件生成客服端java代码。(可以把java文件打成jar文件,便于管理。怎么生成java代码,百度里都有说明我就不写了。)
第三、在你工程里用AXIS的功能属性,调用外部接口;给你一个格式模板:
MobileCodeWSLocator l=new MobileCodeWSLocator();//MobileCodeWSLocator是WSDL文件生成客服端java类;
MobileCodeWSSoap s=l.getMobileCodeWSSoap();();//MobileCodeWSSoap 是WSDL文件生成客服端java类

String m=s.getMobileCodeInfo("13811534742", "");
如果你用Axis生成的java类,格式和上面一样;自己参考一下就懂了。

你上面明显的连接异常,第三方服务明显没有开,WEBSERVICE可以设置户名、密码,像行所有的WEBSERVICE都设置,安全考虑吧。
参考技术A var InterValObj; //timer变量,控制时间
var count = 120; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度

function sendMessage()
curCount = count;
var jbPhone = $("#jbPhone").val();
var jbPhoneTip = $("#jbPhoneTip").text();
if (jbPhone != "")
if(jbPhoneTip == "√ 该手机号码可以注册,输入正确" || jbPhoneTip == "√ 短信验证码已发到您的手机,请查收")
// 产生验证码
for ( var i = 0; i < codeLength; i++)
code += parseInt(Math.random() * 9).toString();

// 设置button效果,开始计时
$("#btnSendCode").attr("disabled", "true");
$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
InterValObj = window.setInterval(SetRemainTime, 1000); // 启动计时器,1秒执行一次
// 向后台发送处理数据
$.ajax(
type: "POST", // 用POST方式传输
dataType: "text", // 数据格式:JSON
url: "UserAction_sms.action", // 目标地址
data: "jbPhone=" + jbPhone +"&code=" + code,
error: function (XMLHttpRequest, textStatus, errorThrown)

,
success: function (data)
data = parseInt(data, 10);
if(data == 1)
$("#jbPhoneTip").html("<font color='#339933'>√ 短信验证码已发到您的手机,请查收</font>");
else if(data == 0)
$("#jbPhoneTip").html("<font color='red'>× 短信验证码发送失败,请重新发送</font>");
else if(data == 2)
$("#jbPhoneTip").html("<font color='red'>× 该手机号码今天发送验证码过多</font>");


);

else
$("#jbPhoneTip").html("<font color='red'>× 手机号码不能为空</font>");



//timer处理函数
function SetRemainTime()
if (curCount == 0)
window.clearInterval(InterValObj);// 停止计时器
$("#btnSendCode").removeAttr("disabled");// 启用按钮
$("#btnSendCode").val("重新发送验证码");
code = ""; // 清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
else
curCount--;
$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");



$(document).ready(function()
$("#SmsCheckCode").blur(function()
var SmsCheckCodeVal = $("#SmsCheckCode").val();
// 向后台发送处理数据
$.ajax(
url : "UserAction_checkCode.action",
data : SmsCheckCode : SmsCheckCodeVal,
type : "POST",
dataType : "text",
success : function(data)
data = parseInt(data, 10);
if (data == 1)
$("#SmsCheckCodeTip").html("<font color='#339933'>√ 短信验证码正确,请继续</font>");
else
$("#SmsCheckCodeTip").html("<font color='red'>× 短信验证码有误,请核实后重新填写</font>");


);
);
);

接口超时需要怎么处理

1/6
程序的超时有两种,首先是webservice连接本身建立通讯了,但是一直没有返回数据,所以上面的代码中定义了webservice的连接超时时间为13s,这是定义在php.ini中的,如果webservice连接超过13s,程序就抛出连接超时的异常。

2/6
另外一种是脚本执行超时,有时候可能是浏览器,网络等各种原因,webservice还没有连接,脚本就陷入了假死状态,所以定义脚本超时时间,系统默认脚本执行时间为30s。

3/6
当调用set_time_limit时,计时器会从0开始计时,前面各种元素加载的时间并不计算在内。此处结合上面的webservice连接超时时间,如果webservice连接上了后产生阻塞。

4/6
13s内便会抛出异常,所以不会引起15s才触发的脚本中断。所以,如果脚本中断基本可以认定webservice没有连接成功。当然,我们查看过webservice连接情况,正常情况下,2s内连接的建立,数据的返回都完成了。

5/6
webservice连接成功后没有及时返回数据,也没有达到13s的连接超时,但是由于前面建立连接时花了不止2s,脚本执行到15s时,中断了脚本,再重建连接返回了非预期的数据。所以,如果愿意等待的话,这两者之间的时间最好可以相差大点。

6/6
脚本中断后系统会报错,所以,这边还有个处理技巧,先记下当前的报错级别,然后重置为0,即不报任何错误,不自动抛出异常,然后脚本超时后,调用register_shutdown_function注册一个自定义函数,超时后会自动调用这个函数,显示自定义的信息。当然,如果webservice连接成功的话,还是需要回复先前的错误级别,不然,webservice连接超时后的异常将无法捕获。
参考技术A 回答

1/6程序的超时有两种,首先是webservice连接本身建立通讯了,但是一直没有返回数据,所以上面的代码中定义了webservice的连接超时时间为13s,这是定义在php.ini中的,如果webservice连接超过13s,程序就抛出连接超时的异常。

2/6另外一种是脚本执行超时,有时候可能是浏览器,网络等各种原因,webservice还没有连接,脚本就陷入了假死状态,所以定义脚本超时时间,系统默认脚本执行时间为30s。3/6当调用set_time_limit时,计时器会从0开始计时,前面各种元素加载的时间并不计算在内。此处结合上面的webservice连接超时时间,如果webservice连接上了后产生阻塞。4/613s内便会抛出异常,所以不会引起15s才触发的脚本中断。所以,如果脚本中断基本可以认定webservice没有连接成功。当然,我们查看过webservice连接情况,正常情况下,2s内连接的建立,数据的返回都完成了。

5/6webservice连接成功后没有及时返回数据,也没有达到13s的连接超时,但是由于前面建立连接时花了不止2s,脚本执行到15s时,中断了脚本,再重建连接返回了非预期的数据。所以,如果愿意等待的话,这两者之间的时间最好可以相差大点。6/6脚本中断后系统会报错,所以,这边还有个处理技巧,先记下当前的报错级别,然后重置为0,即不报任何错误,不自动抛出异常,然后脚本超时后,调用register_shutdown_function注册一个自定义函数,超时后会自动调用这个函数,显示自定义的信息。当然,如果webservice连接成功的话,还是需要回复先前的错误级别,不然,webservice连接超时后的异常将无法捕获。

希望对你有帮助,亲

以上是关于java程序怎么调用webservice接口,实现发送短信功能的主要内容,如果未能解决你的问题,请参考以下文章

java axis调用webservice,接口方法中的数组型参数应该怎么传参

java怎么调用别人给的接口

java语言 编写接口开发需要用到WebService么?

java调用webservice接口具体怎么调用

Java调用wsdl,怎么实现

接口超时需要怎么处理