一、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. vue仿QQ聊天室|vue聊天实例,直播聊天室

    图片压缩 百亿站点 基于vue2.0+vue-cli+vuex+vue-router+webpack+es6+wcPop等技术开发的仿微信聊天界面|仿微信聊天室vue-chatRoom,实现了微信聊天 ...

  2. Qframework UIKit

    用QFramework的UIKit 功能很容易实现UI模块的MVC功能,但MVC模式构造起来还是会有些繁琐, 两个相互直接的UIElement 之间的一些数据传输和调用都要用Msg通过UIPanel ...

  3. Software--BigData--StreamingData

    2018-03-29 16:13:34 一 : 流系统分层架构设计 二: 分层技术选型分析 三:底层 -- 服务配置和协调 ZooKeeper

  4. Http方式发送Soap报文调用WebService

    WebService的实现方式之一就是基于HTTP发送SOAP报文进行调用. 可能由于各种原因,我们不能使用CXF.AXIS等框架调用,此时的解决方案之一就是直接基于HTTP发送SOAP报文,然后将响 ...

  5. AdaptSegeNet 代码分析

    先G后D 训练 G: --S:pred1, pred2 = model(images) :  loss_seg1 = loss_calc(pred1, labels) :   loss.backwar ...

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

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

  7. Java中finalize()方法的使用

    参考:https://blog.csdn.net/m0_64624615/article/details/126326921 垃圾回收器

  8. webpack1.x 之配置的坑

    一.静态资源目录改变(默认在dist下面) 默认: webpack配置 output: { path: path.join(__dirname, './dist'), filename: 'build ...

  9. SourceMap解析

    前端发展至今已不再是刀耕火种的年代了,出现了typescript.babel.uglify.js等功能强大的工具.我们手动撰写的代码一般具有可读性,并且可以享受高级语法.类型检查带来的便利,但经过工具 ...

  10. Java 中的内存分配

    Java 中的内存分配 Java 程序运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. 一.栈:储存局部变量 局部变量 ...