Java WebService接口生成和调用 图文详解

Java WebService接口生成和调用 图文详解webservice简介:WebService技术,能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据WebService规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。WebService是自描述、自包含的可用网络模块,可以执行具体的业务功能。WebService也很容易部署,因为它们

大家好,又见面了,我是你们的朋友全栈君。

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
    }
}

3.进行编译运行(注:失败检查jdk版本)
这里写图片描述
4.将所设地址加上?wsdl到浏览器上访问,如出现XML格式代码,则发布成功,反之,则否;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl)
这里写图片描述

二、WebService调用方法

生成代码方式一

1.新建一个class类,用于调用webservice。右键src,找到Web Service Client,并输入wsdl地址,选择下载代码的路径;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl)
这里写图片描述
这里写图片描述
这里写图片描述
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.创建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 http://192.168.1.105:8080/Service/ServiceHello?wsdl
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)后,此方法不被发布;

该demo我放在github上了,https://github.com/xuwujing/webservice_project。 有兴趣的可以看看。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157922.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 2020互联网行业术语

    2020互联网行业术语互联网行业一般指的是互联网企业,是指以计算机网络技术为基础,利用网络平台提供服务并因此获得收入的企业。其业务范围通常覆盖全国甚至全球,注册用户通常达到千万级以上,用户活跃度也非常高,经常在同一时间点出现请求并行的情况。代表企业有阿里巴巴、腾讯、百度、东、宇节跳动,美团饿了么等。传统行业通常是指互联网向传统行业渗透,实质是传统行业需要互联网。互联网是技术平台、底层架构,它源于安全需求,却在经济领域大放异彩。传统经济正向网络经济转轨,这-有机联系的经济使各行各业均需连接,因此以互联网为代表的联接型

    2022年6月15日
  • Linux操作系统shell脚本for循环示例

    Linux操作系统shell脚本for循环示例Linux操作系统shell脚本for循环示例示例01forain{1..3};dosshroot@192.168.11.$acat/root/.ssh/id_rsa.pub>>/root/.ssh/authorized_keys;done示例02forain{2..3};doscp/root/.ssh/authorized_keysroot@192.168.11$a:/root/.ssh/authorized_keys;done示

    2022年10月27日
  • 软件、硬件版本号命名规范 ,请收藏好![通俗易懂]

    软件、硬件版本号命名规范 ,请收藏好![通俗易懂]点击上方"编程技术圈"关注,星标或置顶一起成长后台回复“大礼包”有惊喜礼包!每日英文Ionceheardthat,theonlythingyoucand…

    2022年9月10日
  • R与RStudio的详细安装教程(有每一步的详细教程!!!!)

    R与RStudio的详细安装教程(有每一步的详细教程!!!!)R与RStudio的详细安装教程(如果下面的博客没有能解决你的问题或者你还有其他关于计算机方面的问题需要咨询可以加博主QQ:1732501467)R是RStudio的前提,首先安装R,才能安装RStudio。安装R教程总共分为三步:一、下载R安装包二、安装R三、打开R安装RStudio,总共分为两步:一、安装RStudio二、测试RStudio是否安装成功R安装开始:一、下载R安装包1.下载网址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/

    2022年6月26日
  • 控制中的各种函数MATLAB仿真

    控制中的各种函数MATLAB仿真控制系统的MATLAB仿真1MATLAB简介MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。从而能够很好的帮助工程师及科学家解决实际的技术问题。MATLAB的含义是矩阵实验室(MatrixL

    2022年6月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号