1.什么是webservice:
服务端整出一些资源让客户端访问(获取数据)
一个跨语言、跨平台的规范
2.作用:跨平台调用、跨语言调用、远程调用

3.什么时候使用webservice:
  1.新旧系统之间
  2.不同公司之间:如淘宝与物流的数据交互
  3.一些提供数据的应用:如天气预报,股票行情,手机号码归属地

4.重要术语

wsdl : web service definition language --网络服务定义语言

  一个webservice 对应一个 wsdl 文档
soap :simple object access protocal 简单对象访问协议
  基于http 和xml 的协议,用于web 上交换结构化,包含请求和响应
SEI :WebService EndPoint Interface(终端接口) 
  实现的方法逻辑,使用jdk里面的注解

5. 实现服务端的功能(SEI)

(1)创建接口,对接口及方法进行注解

package com.webservice.service;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface Hello {
    @WebMethod
    String sayHello(String name);
}

(2)实现接口,类需要注解

package com.webservice.service;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class HelloImpl implements  Hello {
    public String sayHello(String name) {
        String result="say:"+name;
        System.out.println(result);
        return result;
    }
}

(3)发布接口

package com.webservice.service;

import javax.xml.ws.Endpoint;

public class IssHello {
    public static void  main(String []args){
        String address="http://192.168.1.103:8080/connection/Hello";
        Endpoint.publish(address,new HelloImpl());
        System.out.println("成功发布——————");
    }

}

6.实现客户端的功能(调用服务端的接口,获取返回的参数)

(1)新建一个java项目

(2)借助jdk 的wsimport.exe 工具生成客户端的代码

    在新建的java项目路径下,使用cmd 输入 wsimport  -keep url

    url 对应上面的address并在后面加上?wsdl 即:http://192.168.1.103:8080/connection/Hello?wsdl

    运行后会在项目中生成一系列的文件

    创建方法调用服务端代码

package com.webservice.service.test;

import com.webservice.service.HelloImpl;
import com.webservice.service.HelloImplService;

public class Client {
    public static void main(String[] args) {

        HelloImplService factory=new HelloImplService();
        // hello是一个代理对象
        HelloImpl hello=factory.getHelloImplPort();
        System.out.println(hello.getClass());
        System.out.println(hello.sayHello("成功"));

    }
}

end

webservice 的简单实现的更多相关文章

  1. [转贴]WebService的简单实现 C++

    WebService的简单实现 一.socket主机创建和使用过程 1.socket()//创建套接字 2.Setsockopt()//将套接字属性设置为允许和特定地点绑定 3.Bind()//将套接 ...

  2. WebService的简单实现

    WebService的简单实现 一.socket主机创建和使用过程 1.socket()//创建套接字 2.Setsockopt()//将套接字属性设置为允许和特定地点绑定 3.Bind()//将套接 ...

  3. webservice Dome--一个webservice的简单小实例

    1.理解:webservice就是为了实现不同服务器上不同应用程序的之间的通讯 2.让我们一步一步的来做一个webservice的简单应用 1)新建一个空的web应用程序,在程序上右键,新建项目,选择 ...

  4. WebService的简单介绍与入门使用

    WebService是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式 ...

  5. 【C#】 创建、部署和调用WebService的简单示例

    C# 创建.部署和调用WebService的简单示例 <div class="postBody"> <div id="cnblogs_post_body ...

  6. C# 创建、部署和调用WebService的简单示例 (转)

    C# 创建.部署和调用WebService的简单示例(转)  转自 https://www.cnblogs.com/Brambling/p/7266482.html  webservice 可以用于分 ...

  7. Java WebService 开发简单实例

    Web Service 是一种新的web应用程序分支,他们是自包含.自描述.模块化的应用,可以发布.定位.通过web调用.Web Service可以执行从简单的请求到复杂商务处理的任何功能.一旦部署以 ...

  8. WebService 超简单入门教程(Java)

    写在前面的话: 当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此, 各个应用程序之间的交流就需要WebService来作为相互交流的桥梁! 项目目的: 程 ...

  9. 使用CXF发布WebService服务简单实例

    一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...

  10. C# WebService的简单和复杂参数类型和结果的JSON格式

    Jquery作为一款优秀的JS框架,简单易用的特性就不必说了.在实际的开发过程中,使用JQ的AJAX函数调用WebService 的接口实现AJAX的功能也成了一种比较普遍的技术手段了.WebServ ...

随机推荐

  1. spyder崩溃修复

    实验室突然断电,重启电脑后spyder崩溃 在anaconda命令行中输入命令失败 StackOverflow上找的解决方案,适合win10系统,简单粗暴 在win10搜索里面找,点一下就自动修复了

  2. linux问题故障

    分析问题的方法论 What-现象是什么样的 When-什么时候发生 Why-为什么会发生 Where-哪个地方发生的问 How much-耗费了多少资源 How to do-怎么解决问题 4. cpu ...

  3. Anaconda下的 Jupyter Notebook 安装 多python环境

    装完 Anaconda 会自带一个pyhon环境   也会自带Jupyter Notebook   可以点击开始中的Jupyter Notebook 打开 浏览器 我这里是 3.x 想要装个2.7 的 ...

  4. 关于页面跳转之后获取不到session数据的问题

    暂时的解决方法有两种,亲测有效: 方法一:  将页面跳转方式由a标签改为请求转发request.getRequestDispatcher("stu_list.jsp").forwa ...

  5. python三大神器===》迭代器

    迭代器: 1.认识迭代器 迭代器是访问集合元素的一种方式.迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 我们怎样才能 ...

  6. Activity的生命周期及协同作用

    生命周期 onCreate:创建Activity的实例对象的方法 onStart:启动当前的activity实例的方法 onResume:如果该方法执行,页面的实例和用户即可以交互 onPause:如 ...

  7. 关于C++中vector<vector<int> >的使用

    1.定义 vector<vector<int>> A;//错误的定义方式 vector<vector<int> > A;//正确的定义方式 2.插入元素 ...

  8. chromedriver版本问题

    最新的chromedriver 66.0.3359.117 的对应chromedriver版本为2.38 http://npm.taobao.org/mirrors/chromedriver/ Web ...

  9. [Codeforces]1263E Editor

    The development of a text editor is a hard problem. You need to implement an extra module for bracke ...

  10. 解决上传代码到GitHub报错Push rejected: Push to origin/master was rejected

    最近在 push 代码到 github 时,IDEA报错 Push rejected: Push to origin/master was rejected 在网友找了一圈,发现都不是想要的答案 于是 ...