最近,工作遇到要与短信机对接,研究些许时间,最终用webvice接口,个人测试采用webvice要比用API发送快,以下内容部分参考网上代码
步骤1、mas wsd地址:http://xxx.xxx.xxx.xxx/axis/services/SMsg?WSDL
2.通过axis1.4 生成客户端代码 在网上可以下载,官网已经没有
set AXIS_HOME=E:\axis\WEB-INF
set CLASSPATH=,;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\mail.jar;
java org.apache.axis.wsdl.WSDL2Java -p com.sms http://xxx.xxx.xxx.xxx/axis/services/SMsg?WSDL
pause
其中 pause 的作用是使命令行界面停留
3.ecplise 需要scr--客户端代码 lib ---webservice 所需jar包
public class SendSms {
public static void main(String args[]) {
java.util.HashMap<Integer, String> sqlContent = new java.util.HashMap<Integer, String>();
String ip = "xxx.xxx.xxx.xxx";
String dbName = "xxx";//数据库名称
String dbPort = "xxxx";//端口号
String loginName = "xxx";//登录名
String loginPwd = "xxx";//登录密码
String apiCode = "xxxx";//编码
long smId=2816;//客户收到短信id
int result = 2;
String[] mobiles = new String[2];
mobiles[0] = "11111111111";//手机号
String content = "发送手机内容";
SMsgService service=new SMsgServiceLocator();
SMsg_PortType client;
try {
client = service.getSMsg();
result= client.init(ip, dbName, dbPort, loginName,loginPwd);//初始化
if (result == 0) {
System.out.print("Init成功!");
// result=client.sendSM(apiCode,loginName,loginPwd,mobiles,content,smId);//发送短信
if (result == 0) {
System.out.println(content + " " + "发送成功!");
} else{
System.out.println(content + " " + "发送失败!");
}
String huizhi=client.recvMo(apiCode, loginName, loginPwd);//接收回执
System.out.println("回执!"+huizhi);
result=client.release();
} else
System.out.println("Init失败!");
} catch (ServiceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}