项目背景

  接到的任务是通过调用其他平台厂商提供的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(端点服务)发布一个WebServicepublic 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.去${代码输出路径}里可以找到生成的客户端

转载于:https://www.cnblogs.com/yuxiaona/p/9264908.html

webservice 菜鸟探索之旅相关推荐

  1. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 1.第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的 ...

  2. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

  3. Web 探索之旅 | 第二部分第一课:客户端语言

    -- 作者 谢恩铭 转载请注明出处 Web探索之旅 | 第二部分 第二部分第一课:客户端语言 第二部分第二课:服务器语言 第二部分第三课:框架和内容管理系统 第二部分第四课:数据库 第二部分第五课:响 ...

  4. 美团外卖商家端视频探索之旅

    美团外卖商家端视频探索之旅 背景 美团外卖至今已迅猛发展了六年,随着外卖业务量级与日俱增,单一的文字和图片已无法满足商家的需求,商家迫切需要更丰富的商品描述手段吸引用户,增加流量,进而提高下单转化率和 ...

  5. Linux 探索之旅 | 第五部分第五课:循环往复,Shell 开路

    -- 作者 谢恩铭 转载请注明出处 内容简介 前言 while 循环 until 循环 for 循环 总结 第五部分第六课预告 1. 前言 上一课 Linux探索之旅 | 第五部分第四课:条件一出,S ...

  6. c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型

    内容简介 前言 定义一个 struct 结构体的使用 结构体指针 union enum 总结 第二部分第七课预告 1. 前言 上一课是 C语言探索之旅 | 第二部分第五课:预处理 ,应该是比较轻松的. ...

  7. 调用非.net系统的Webservice的探索 ( 三 ) -WCF

    http://www.cnblogs.com/zitjubiz/archive/2011/09/27/WCF_Soap_Header.html 最近Oracle的DRM系统发布了新版本,其中的webS ...

  8. 游戏AI探索之旅:从AlphaGo到MOBA游戏

    背景:7月28日,腾讯云在北京举办云+社区沙龙,邀请来自腾讯与四川云检科技的五位AI技术专家,分享他们在专业领域的AI开发经验,帮助开发者在具体行业场景中实践AI技术.本文根据王亮在[7.28日腾讯云 ...

  9. shell 做加法运算_C语言探索之旅 | 第一部分第七课:运算那点事

    上一课是 C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容 今天,我们一起来学习 C语言(对大多数编程语言也类似)中的运算. 之前的课中,我们已经说过:电脑是一台"笨笨&q ...

最新文章

  1. Java的File类
  2. 在CentOS 6.3 64bit上安装tsar并监控Apache Traffic Server
  3. C语言字符串处理的库函数
  4. 可以卸载什么程序来对计算机进行瘦身,电脑越来越卡了,教你一分钟让电脑瘦身(C盘哪些文件可以删除)-怎么清理电脑内存...
  5. NYOJ 298 点的变换(矩阵快速幂)
  6. Linux vim的w,q,!,/
  7. Web前端是做什么的?就业前景如何?
  8. Python中import和from......import的区别
  9. SAP面向iOS设备推Cloud Platform SDK工具
  10. python开课吧1980课程_开课吧的课程怎么样?
  11. Python学习之路3 - 字符串操作字典
  12. sql 基本操作语句笔记
  13. java spring boot 项目 热加载 有利于快速开发
  14. phpstorm 新加入项目的文件--全局搜索不到 ctrl + shift + R
  15. shell编程复习 第二次
  16. ubuntu16.04系统下配置caffe的GPU环境,训练mobileNet-SSD并在EAIDK-310嵌入式上推理
  17. discuz教程 毫无基础常识的站长搭建HTTPS。图文并茂
  18. 阿里巴巴常用的 12 个后端开发工具,建议你快快收藏!
  19. Linux面试题总结
  20. chatgpt接入微信

热门文章

  1. Android 沉浸式状态栏攻略 让你的状态栏变色吧
  2. 以智慧校园为起点 西电携手新华三发掘信息化价值
  3. 面向异构众核超级计算机的大规模稀疏计算性能优化研究
  4. typeScript学习(九)、function_type_参数限制_返回值类型
  5. rust外服组建战队_rust怎么把人拉入队伍 | 手游网游页游攻略大全
  6. PHP面向对象——GD库实现图片水印和缩略图
  7. 一加手机6t鸿蒙rom,一加6T官方原厂固件rom刷机包_OnePlus 6T最新升级包更新
  8. Linux命令手册-查看文件大小常用命令(df、du、stat)(详解)
  9. Ubuntu查找软件源
  10. LibGDX QQ群建立,欢迎对libGDX有兴趣的程序员加入。