分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

webservice 菜鸟探索之旅

发布时间:2023-09-06 02:02责任编辑:熊小新关键词: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 菜鸟探索之旅

原文地址:https://www.cnblogs.com/yuxiaona/p/9264908.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved