Web Service--第一次接触web service
Web Service
首发于开源中国
1. 背景
- 中国移动短信网关需求,要能够发送短信。开发材料只有一个短信发送配置:包括ID,password,code,url。一个jar包还有一个老旧的html帮助文档。
- 最初将单个jar包加入工程,按照文档中new 一个对象,直接填入参数发送的来,以为就可以了。但是线上调试有null异常。之后一直在用该jar包调试,以为缺少依赖,于是在pom文件中加入了各种依赖,没跑一次就说缺class,终于不报缺calss错误了,还是有null异常。为此调试了好几次,还写了测试程序都不行。
- 于是网上找材料,发邮件问部署短信服务的人,给的结论是:jar包老旧仅供参考,要使用web service自行开发。还给了一个比较新的html帮助文档。但是文档在win10下都打不开,还得再win7上才能看。于是就开始了web service的探索。
- 还好网上搜到了一个网址,可以帮助理解,不然每次都得远程上线调试真是要命。
2. 基础知识
- 该web service类似于:http://111.1.3.11:9080/OpenMasService
- 该服务的主要内容是:http://111.1.3.11:9080/OpenMasService?wsdl
- 于是参考: 使用命令wsimport构建WebService客户端 在线上执行以下命令:这里必须在线上运行,不然会报连接错误。而且这个命令也不是都能成功,很多不匹配的规范会导致不能解析。还好我这儿没出错。
wsimport -keep -d ./ -s ./src -p com.james1 -verbose url或保存本地的wsdl文件
于是生成本地文件,就是java的开发包了。
└─james
AddTask1.java
AddTask1Response.java
AddTask2.java
AddTask2Response.java
ArrayOfstring.java
DayOfWeek.java
GetMessage.java
GetMessageResponse.java
GetWaitSmsMessageCount.java
GetWaitSmsMessageCountResponse.java
ISms.java
ObjectFactory.java
package-info.java
PeriodTime.java
PeriodType.java
PeriodValue.java
RemoveMessage.java
RemoveMessageResponse.java
RemoveTask.java
RemoveTaskResponse.java
SendMessage3.java
SendMessage3Response.java
SendMessage4.java
SendMessage4Response.java
SendWapPush1.java
SendWapPush1Response.java
SendWapPush2.java
SendWapPush2Response.java
SmsImplementation.java
SmsMessage.java
- 这样在java工程中调用SmsImplementation.java即可:
String result = smsImplementation.getBasicHttpBindingISms().sendMessage3(address,message,extendCode,applicationID,password);
- 对于自定义web service服务参考材料:
- 公共开放WebService接口:http://blog.csdn.net/yixiaoping/article/details/16877623
3. 打jar包
- 参考:Java中打jar包的方法
- 查看jar包中的内容:
jar tvf target/myproject-0.0.1-SNAPSHOT.jar
- 创建jar包
jar cvf 打成的jar包的名字 (一个或者多个)class文件或者文件夹