一、webService概念简单介绍:

简单来说,webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

二、实例代码(本实例中不需要导任何jar包,jdk自带包)

新建个java项目(创建java项目可参考:创建一个简单的java项目 )

  

  创建一个接口WebService,一个实现WebServiceImpl,一个主程序WebServicePublish,

package service;

import javax.jws.WebMethod;

public interface WebService {

    @WebMethod
public String sayHello(String name);
}
package service;

@javax.jws.WebService
public class WebServiceImpl implements WebService { @Override
public String sayHello(String name) {
String returnStr = name + ",你好";
return returnStr;
} }
package service;

import javax.xml.ws.Endpoint;

public class WebServicePublish {

    public static void main(String[] args) {
String address="http://localhost:8989/WS_Server/WebService";
Endpoint.publish(address,new WebServiceImpl());
System.out.println("发布成功....");
}
}

  注意:一定要注意接口和实现的注解!!!

创建完成后,我们启动主程序,在控制台可以看到 发布成功

然后我们在浏览器访问我们定义的address,记得末尾要加?wsdl

 

这时候说明服务端服务已经发布成功了,接下来我们创建客户端调用接口

同样,新建一个java项目

接下来这块要注意了,我们打开dos窗口,也就是win+r , 执行cmd

在dos窗口中输入wsimport -s 我们这个项目的src路径 -keep 我们发布的webservice地址

回车后,我们刷新下项目,会发现项目中多了很多自动生成的代码

这时候,我们就可以创建客户端主程序,来调用服务端服务了

package service;

public class WSClient {
public static void main(String[] args) {
WebServiceImplService factory=new WebServiceImplService();
WebServiceImpl wsImpl = factory.getWebServiceImplPort();
String sayHello = wsImpl.sayHello("张三");
System.out.println("调用webservice服务的结果是:"+sayHello);
}
}

运行主程序后,我们可以在控制台可以看到,

说明我们本次webservice服务发布调用成功

webservice学习随笔(一):简单的webservice实例的更多相关文章

  1. WebService学习--(三)使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  2. [置顶] WebService学习总结(1)——WebService相关概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  3. WebService学习总结(6)——WebService常用接口

    商业和贸易:1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSer ...

  4. Axis2 webservice入门--写个简单的webservice

    上一篇介绍了webservice开发前的准备.下面开始写webservice.如果不了解axis2请看上一篇,如果是新手:建议一边看一边写代码,自己动手完成这个过程. 一.新建一个web项目 二.新建 ...

  5. WebService学习总结(5)——WebService常见开发框架比较

    在SOA领域,我们认为Web Service是SOA体系的构建单元(building block).对于服务开发人员来说,AXIS和CXF一定都不会陌生.这两个产品都是Apache孵化器下面的Web ...

  6. WebService学习总结(2)——WebService是什么?

    一.WebService是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言.跨平台的规范(抽象) 3. 多个跨平台.跨语言的应用间通信整合的方案(实际 ...

  7. webservice学习总结(一)-- WebService相关概念介绍

    一.WebService是什么? 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 一个跨语言.跨平台的规范(抽象) 多个跨平台.跨语言的应用间通信整合的方案(实际) 二.为什么要用 ...

  8. JMS学习二(简单的ActiveMQ实例)

    下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到b ...

  9. linux 学习随笔-shell简单编写

    脚本最好都放在/usr/local/sbin中 脚本的执行 sh -x 脚本.sh -x可以查看执行过程 1在脚本中使用变量 使用变量的时候,需要使用$符号:  #!/bin/bash  ##把命令赋 ...

  10. 利用Java编写简单的WebService实例-转载

    使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService.下面是一个从编写测试例子到 ...

随机推荐

  1. NIO 缓冲区 ByteBuffer 之黏包和半包

    一.低效率方式 /** * 黏包.半包 */ private static void buffExample2() { /* 网络上传输多条数据给服务器,数据之间使用 \n 分隔. 但由于某种原因(多 ...

  2. redis in windows

    Redis https://github.com/MSOpenTech/redis/releases 启动 redis-server redis.windows.conf 设置服务 redis-ser ...

  3. WDA学习(25):DateNavigator使用

    1.18 UI Element:Date Navigator使用 本实例测试创建Date Navigator; 1.创建Component,View: V_DATE_NAVIGATOR; 2.创建Co ...

  4. elementUi - 页面设计规范

    elementUi - 页面设计规范 参考资料 element 字体 Font-family 代码 font-family: "Helvetica Neue",Helvetica, ...

  5. 11.20 dom 浏览器对象模型

    1.window.open(url,ways) url 是打开的网页地址 ways 打开的方式 _self 2.window.close() 3.浏览器用户信息:Window.navigator 4. ...

  6. KinectFusion算法论文解读/代码解读随笔

    --2021.6.8 上图是kinectfusion的流程图,是整个系统的工作流.我们对上面的流程进行分析以及相关代码的解读,使用的代码库是pcl的Kinectfusion复现.(ps:因为我只在ub ...

  7. C#textbox控件区分扫码枪输入和键盘输入

    前言: 一般我们在某个UI界面输入内容的时候又不想人为的去键盘输入,这个时候就需要区分键盘输入和扫码枪的输入,从而禁止人为键盘输入内容,只能使用扫码枪扫码输入.就目前来说这种直插式扫码枪输入和键盘输入 ...

  8. base64EncodedStringWithOptions iOS

    // 64位编码//先将string转换成dataNSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];NSData *base ...

  9. ElasticSeach性能调优

    1. 硬件相关 1.1 硬盘 一块好的硬盘,会带来ES整体性能10倍以上提升,推荐在datanode节点上使用SSD硬盘,索引的data目录,存放在SSD硬盘上. 1.2 内存 建议内存>128 ...

  10. flask create_time update_time is_delete

    create_time = db.Column(db.DateTime, server_default=func.now()) update_time = db.Column(db.DateTime, ...