博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webservice调用和生成
阅读量:5959 次
发布时间:2019-06-19

本文共 2965 字,大约阅读时间需要 9 分钟。

webservice简介: 

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制

 

一、 WebService生成

1.在eclipse或myclipse新建一个Web项目,并新建一个class类,用于发布; 

这里写图片描述

2.编写供客户端调用的方法,即编译方法代码; 

示例:

import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endpoint;/*** Title: ServiceHello* Description: 基于jdk1.6以上的javax.jws 发布webservice接口               @WebService - 它是一个注解,用在类上指定将此类发布成一个ws。 Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解 对象绑定到一个地址的端口上。 * Version:1.0.0 * @author panchengming */ @WebService public class JwsServiceHello { /** 供客户端调用方法 该方法是非静态的,会被发布 * @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://192.168.1.105:8080/Service/ServiceHello", new JwsServiceHello()); System.out.println("发布成功!"); //发布成功后 在浏览器输入 http://192.168.1.105:8080/Service/ServiceHello?wsdl } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

3.进行编译运行(注:失败检查jdk版本) 

这里写图片描述 
4.将所设地址加上?wsdl到浏览器上访问,如出现XML格式代码,则发布成功,反之,则否;(url: ) 
这里写图片描述

二、WebService调用方法

生成代码方式一

1.新建一个class类,用于调用webservice。右键src,找到Web Service Client,并输入wsdl地址,选择下载代码的路径;(url: ) 

这里写图片描述 
这里写图片描述 
这里写图片描述 
2.将地址上的文件下载下来(注意和发布JDK一致); 
3.写调用方法调用下载下来的WebService中的java类中的方法; 
示例:

import com.pcm.ws.jws.JwsServiceHello;import com.pcm.ws.jws.JwsServiceHelloService;/** * * Title: JwsClientHello* Description: webService 客户端调用* Version:1.0.0  * @author panchengming */public class JwsClientHello { public static void main(String[] args) { //调用webservice JwsServiceHello hello=new JwsServiceHelloService().getJwsServiceHelloPort(); String name=hello.getValue("panchengming"); System.out.println(name); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

这里写图片描述

生成代码方式二 

1.创建Web Service Project,命名为TheClient。 
2.在dos命令下输入 wsimport -s “src目录” -p “生成类所在包名” -keep “wsdl发布地址” 
示例:wsimport -s G:\workspace\webService\webService_Project\src -p com.pcm.ws.jws -keep  
3.成功则返回 parsing WSDL… 
generating code… 
compiling code… 
4.刷新项目,生成类; 
5,写调用方法(同上);

三、总结:

如何发布一个Web服务: 

a,在类上添加@WebService注解 
(注:此注解是jdk1.6提供的,位于javax.jws.WebService包中) 
b,通过EndPoint(端点服务)发布一个WebService 
(注:EndPoint是jdk提供的一个专门用于发布服务的类,该类的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。位于 javax.xml.ws.Endpoint包中) 
c,注: 
类上添加注解@WebService,类中所有非静态方法都会被发布; 
静态方法和final方法不能被发布; 
方法上加@WebMentod(exclude=true)后,此方法不被发布;

 

转载于:https://www.cnblogs.com/dingguofeng/p/8694580.html

你可能感兴趣的文章
【查找算法】基于存储的查找算法(哈希查找)
查看>>
JavaWeb网上图书商城完整项目--day02-10.提交注册表单功能之页面实现
查看>>
做程序开发的你如果经常用Redis,这些问题肯定会遇到
查看>>
006android初级篇之jni数据类型映射
查看>>
org.openqa.selenium.StaleElementReferenceException
查看>>
HBase 笔记3
查看>>
Linux嵌入式GDB调试环境搭建
查看>>
java分析jvm常用指令
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
阿里百川码力APP监控 来了!
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>