webservice 菜鸟探索之旅
项目背景
接到的任务是通过调用其他平台厂商提供的webservice接口来获取他们的图片数据把图片下载下来录入我司平台。之前没有接触过webservice,所以开始了这次webservice的菜鸟之旅。
一.首先去百度查了查简单搭建了一个webservice的服务端和客户端的小demo,用来了解它的工作流程
服务端搭建
1.新建一个java项目,目录如下

2.新建个类,加注解@WebService,主要内容如下
package webservice_serverDemo; import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint; @WebService
public class Test {
/** 供客户端调用方法 该方法是非静态的,会被发布
* @param name 传入参数
* @return String 返回结果
* */
public String getValue(String name){
return "欢迎你! "+name;
} /**
* 方法上加@WebMentod(exclude=true)后,此方法不被发布;
* @param name
* @return
*/
@WebMethod(exclude=true)
public String getHello(String name){
return "你好! "+name;
} /** 静态方法不会被发布
* @param name
* @return
*/
public static String getString(String name){
return "再见!"+name;
} //通过EndPoint(端点服务)发布一个WebService
public static void main(String[] args) {
/*参数:1,本地的服务地址;
2,提供服务的类;
*/
Endpoint.publish("http://127.0.0.1:8080/Test", new Test());
System.out.println("发布成功!");
//发布成功后 在浏览器输入 http://localhost:8080/Test?wsdl
} }
3.运行主方法,控制台显示发布成功

4.浏览器输入 http://localhost:8080/Test?wsdl 可以看到生成的wsdl文件,服务端搭建完毕

客户端搭建
1.新建一个java工程
2.点击工程右键>New>Other>Web service client>填写wsdl地址如下图(确保服务端不要关闭,浏览器访问地址能看到xml)也可以填写的是一个wsdl文件的路径

finish之后就会发现在src下生成了客户端的文件夹和java类,这时候就可以在客户端调用接口了

调用一下试试
package webservice_serverDemo; import java.rmi.RemoteException;
import java.util.Iterator; import javax.xml.rpc.ServiceException; public class Hello {
public static void main(String []args) throws RemoteException, ServiceException{
TestServiceLocator test = new TestServiceLocator();
Test ports = test.getTestPort();
System.out.println(ports.getValue("小娜"));
} }
控制台输出,可以看到有一个警告是因为缺少mail.jar和activation.jar,可以自己下载,不加也没有特别大的影响

回归到项目
通过上面的小demo可以看出,eclipse能根据wsdl自动生成客户端来调用,非常简单。but,通过平台厂商反馈的wsdl文件发现,由于他们系统十分老旧,生成的wsdl无法用这种方法生成客户端,于是换了一种方法,使用axis1.4生成客户端
1.下载axis-bin-1_4.zip jar包,解压
2.进入lib目录下打开cmd 运行
D:\soft\axis-1_4\lib>java -Djava.ext.dirs=D:\soft\axis-1_4\lib org.apache.axis.wsdl.WSDL2Java -o D:\zhuhai -p com.ws D:\soft\axis-1_4\RequestService.wsdl
//java -Djava.ext.dirs=${lib的目录} org.apache.axis.wsdl.WSDL2Java -o${代码输出路径} -p${package名} ${wsdl的路径(可以是绝对路径或者url)}
会报一个这个警告,没有关系,上面提过
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
3.去${代码输出路径}里可以找到生成的客户端
webservice 菜鸟探索之旅的更多相关文章
- 【Linux探索之旅】第二部分第二课:命令行,世界尽在掌握
内容简介 1.第二部分第二课:命令行,世界尽在掌握 2.第二部分第三课预告:文件和目录,组织不会亏待你 命令行,世界尽在掌握 今天的标题是不是有点霸气侧漏呢? 读者:“小编,你为什么每次都要起这么非主 ...
- 【Linux探索之旅】第一部分第五课:Unity桌面,人生若只如初见
内容简介 1.第一部分第五课:Unity桌面,人生若只如初见 2.第一部分第六课预告:Linux如何安装在虚拟机中 Unity桌面,人生若只如初见 不容易啊,经过了前几课的学习,我们认识了Linux是 ...
- 【Web探索之旅】第四部分:Web程序员
内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...
- 【Web探索之旅】第三部分第一课:服务器
内容简介 1.第三部分第一课:服务器 2.第三部分第二课预告:IP地址和域名 第三部分第一课:服务器 大家好,欢迎来到[Web探索之旅]的第三部分.这一部分有不少原理,还是很重要的. 这一部分我们会着 ...
- 【Web探索之旅】第三部分第二课:IP地址和域名
内容简介 1.第三部分第二课:IP地址和域名 2.第三部分第三课预告:协议 第三部分第二课:IP地址和域名 上一课我们说了在Web之中,全球各地有无数台机器,有些充当客户机,有些作为服务器. 那么这些 ...
- 【Web探索之旅】第一部分:什么是Web?
内容简介 1.Web探索之旅:开宗明义 2.第一部分第一课:什么是Web? 3.第一部分第二课:Web,服务和云 4.第一部分第三课:Web的诞生史 Web探索之旅:开宗明义 大家好. 我们这个系列课 ...
- 【C++探索之旅】第一部分第三课:第一个C++程序
内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适 ...
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...
随机推荐
- JavaScript学习笔记(八)—— 补
第九章 最后的补充 一.Jquery简单阐述 JQuery是一个JavaScript库,旨在减少和简化处理DOM和添加视觉效果的JavaScript代码:使用时必须得添加库路径:学习路径:http:/ ...
- 使用Python一年多了,总结八个好用的Python爬虫技巧
用python也差不多一年多了,python应用最多的场景还是web快速开发.爬虫.自动化运维:写过简单网站.写过自动发帖脚本.写过收发邮件脚本.写过简单验证码识别脚本. 爬虫在开发过程中也有很多复用 ...
- roadhog中如何拷贝文件
一:使用 public 目录 我们约定 public 目录下的文件会在 server 和 build 时被自动 copy 到输出目录(默认是 ./dist)下.所以可以在这里存放 favicon, i ...
- 图解Raid5数据存储的原理
- js最简单的动画
$(document).ready(function(){ //�ֶ�����ҳ��Ԫ�� $("#reset").click(function(){ $("*" ...
- webpack入门指南-step03
一.webpack 的使用 webpack简单点来说就就是一个配置文件,所有的魔力都是在这一个文件中发生的. 这个配置文件主要分为三大块 entry 入口文件 让webpack用哪个文件作为项目的入口 ...
- Ambiguous mapping. Cannot map 'labelInfoController' method
使用springboot项目中,启动时出现Ambiguous mapping. Cannot map 'labelInfoController' method , 原因是,@RequestMappin ...
- Gogoing的NABCD
特点之一:路线推荐 N 用户出行需要一个合理的路线计划 A 运用百度地图,还有根据自己的所想去的地方,推荐最省时间,最省钱的路线安排 B 方便用户出行,节约时间,节约金钱 C 对于旅行方面的App, ...
- (2016.2.2)1001.A+B Format (20)解题思路
https://github.com/UNWILL2LOSE/object-oriented 解题思路 目标: *首先运算要求实现输入2个数后,输出类似于银行的支票上的带分隔符规则的数字. 代码实现思 ...
- Gradle入门(1):安装
在Ubuntu下,执行以下命令: sudo apt-get install gradle 安装完成后,执行命令: gradle -v 得到以下信息: Picked up _JAVA_OPTIONS: ...