WebService的开发手段

  1、使用JDK开发(1.6及以上版本)

  2、使用CXF框架开发(工作中)

WebService的组成

  1、服务器端

  2、客户端

使用JDK开发WebService

  a、开发WebService服务端

    1、使用eclipse新建一个服务端java工程
    

    2、新建一个接口,使用@WebService(SEI和SEI的实现类)注解标注接口,使用@WebMethod(SEI中的所有方法)注解标注接口中定义的所有方法,如下:      

 package com.test.ws;

 import javax.jws.WebMethod;
import javax.jws.WebService; /**
* 定义SEI(WebService EndPoint Interface)终端
* @author H__D
* @date 2017年7月28日 上午11:35:34
*
*/
//使用@WebService注解标注WebServiceI接口
@WebService
public interface HelloWS { //使用@WebMethod注解标注WebServiceI接口中的方法
@WebMethod
public String sayHello(String name); }

    3、编写一个接口实现类,使用@WebService注解标注实现类,如下:

 package com.test.ws;

 import javax.jws.WebService;

 /**
* SEI的具体实现
* @author H__D
* @date 2017年7月28日 上午11:37:43
*
*/
//使用@WebService注解标注
@WebService
public class HelloWSImpl implements HelloWS{ @Override
public String sayHello(String name) {
System.out.println("WebService sayHello : " + name);
return "Hello : " + name;
}
}

    4、使用Endpoint(终端)类发布webservice,如下:

 package com.test.ws.server;

 import javax.xml.ws.Endpoint;

 import com.test.ws.HelloWSImpl;

 /**
* 发布Web Service
* @author H__D
* @date 2017年7月28日 上午11:40:48
*
*/
public class ServerTest { public static void main(String[] args) { //定义WebService的发布地址,这个地址就是提供给外界访问Webervice的URL地址,URL地址格式为:http://ip:端口号/xxxx
String address = "http://127.0.0.1:8989/test-webservice/hellows";
//使用Endpoint类提供的publish方法发布WebService,发布时要保证使用的端口号没有被其他应用程序占用
Endpoint.publish(address, new HelloWSImpl());
System.out.println("发布webservice成功!"); }
}

    5、运行SeverTest类的main方法,使用浏览器进行访问,访问地址:http://127.0.0.1:8989/test-webservice/hellows,如下:
      控制他输出:
      
      网页访问:
      

    6、使用Eclipse的Web Services Explorer,测试访问WebService,其中要输入wsdl地址(一般是发布的WebService的Endpoint后面加上'?wsdl'):
      
      
      

    7、查看发送消息和响应消息的具体内容,在Eclipse的Web Services Explorer模块中的Status中,点击Source如下:
      
      然后在请求框中查看源,同理在响应框中查看源,可以看到发送的请求消息和响应消息
      
      请求消息

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.test.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<q0:sayHello>
<arg0>tom</arg0>
</q0:sayHello>
</soapenv:Body>
</soapenv:Envelope>

      响应消息

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:sayHelloResponse xmlns:ns2="http://ws.test.com/">
<return>Hello : tom</return>
</ns2:sayHelloResponse>
</S:Body>
</S:Envelope>

  b、开发WebService客户端

    1、使用eclipse新建一个客服端java工程
      

    2、使用jdk的wsimort.exe工具生成客户端代码,执行命令:wsimport -keep url(url为wsdl文件的路径)生成客户端代码,wsimort.exe工具位于jdk的bin目录下,如下:
      
      打开命令行窗口,切换到src目录中,执行命令:wsimport -keep http://127.0.0.1:8989/test-webservice/hellows?wsdl,如下:
      
      刷新工程,可以看到代码已经生成,如下
      

    3、编写调用WebService对外提供的方法
      wsimport工具帮我们生成了好几个java类,但我们只需要关心WebServiceImplService类和WebServiceImpl接口的使用即可,如下:

 package com.test.ws.client;

 import com.test.ws.HelloWSImpl;
import com.test.ws.HelloWSImplService; /**
* 调用WebService的客户端
* @author H__D
* @date 2017年7月28日 下午2:39:24
*
*/
public class WSClient { public static void main(String[] args) {
//创建一个用于产生WebServiceImpl实例的工厂,WebServiceImplService类是wsimport工具生成的
HelloWSImplService factory = new HelloWSImplService();
//通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的
HelloWSImpl helloWS = factory.getHelloWSImplPort();
System.out.println(helloWS.getClass()); //调用WebService的sayHello方法
String result = helloWS.sayHello("Jack");
System.out.println(result);
}
}

    4、运行main方法,控制台输出,可以看到已经成功调用了WebService,如下:
      

    

【WebService】使用JDK开发WebService(二)的更多相关文章

  1. WEBSERVICE之JDK开发webservice

    转自:https://www.cnblogs.com/w-essay/p/7357262.html 一.开发工具与环境 1. jdk1.6版本以上(jdk1.6.0_21及以上版本) 2 .eclip ...

  2. WebService学习总结(二)--使用JDK开发WebService

    一.WebService的开发方法 使用java的WebService时可以使用一下两种开发手段 使用jdk开发(1.6及以上版本) 使用CXF框架开发(工作中) 二.使用JDK开发WebServic ...

  3. 使用JDK开发WebService

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

  4. WebService学习总结(三)——使用JDK开发WebService

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

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

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

  6. [置顶] WebService学习总结(3)——使用java JDK开发WebService

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

  7. WebService学习总结(三)——使用JDK开发WebService(转)

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

  8. 2.使用JDK开发webService

    使用jdk开发webService需要注意:jdk版本必须1.6以及1.6以上! 以下webService的组成部分: server端和client端,通过服务器端(server)webService ...

  9. WebService-使用JDK开发WebService

    一.使用JDK开发WebService 2.1.开发WebService服务器端 1.定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所 ...

随机推荐

  1. Pandas汇总和处理缺失数据

    汇总的函数 方法 说明 count 非NA的值数量 describe 针对Series和DataFrame列计算汇总统计 min.max 计算最小值和最大值 argmin.argmax 计算能够获取到 ...

  2. 【C++】cout未刷新缓冲区仍会输出的问题

    众所周知,cout是一个流对象,管理一个缓冲区.当使用<<操作符输出字符串时,字符串不是直接被输出到屏幕上,而是首先被插入到该流的缓存(buffer)中.而只有当缓冲区被刷新时,字符串才会 ...

  3. GIT 命令集

    Git图形化界面 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remot ...

  4. 替换空格(python)

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. # -*- coding:ut ...

  5. 最小k度限制生成树

    [题目描述] 给你一个图,n个点,m条边,求一颗生成树满足如下条件: (1)结点1的度不超过k. (2)在(1)条件下所求生成树最小. [算法引入] 最小k度限制生成树,就是指有特殊的某一点的度不能超 ...

  6. CountDownLatch的和CyclicBarrier使用

    CyclicBarrier的使用: 假设只有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待. CountDownLacth使用: 他经常用于监 ...

  7. 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由

    前言: 对于小程序的页面路由,如果没有一定开发经验的话,理解起来还是会有些困难的.哪怕是有一定小程序开发经验的开发者,能够完全理解掌握的恐怕也不多. 这里就以另外一种方式来详细的介绍小程序的页面栈及路 ...

  8. wk1&2 字符串

    [CQ] 自增怎么样都增了,赋值不一定: int x = 2; int y = 2; int i = ++x; int j = y++; System.out.println(x); System.o ...

  9. [leetcode]210. Course Schedule II课程表II

    There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prereq ...

  10. Java 获取CPU、内存、外网IP等硬件信息

    import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.Input ...