WebService和Java核心技术中的RMI一样用于实现异构平台上的应用程序之间数据的交互,唯一不同的是这种技术屏蔽了语言之间的差异,这也是其大行其道的原因。实现WebService的技术多种多样,可以使用JAX-WS、CXF、Axis2或Metro等方式实现WebService,接下来会给大家展示如何使用不同的方式实现WebService,本篇博客为大家演示如何使用JAX-WS实现WebService:

一、创建WebService服务器端:

1、新建一个名为“server”的Java工程;

2、创建IComputeService接口,代码如下:

package com.ghj.service;import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;/*** SEI Service Endpoint Interface 发布的服务接口* * @author GaoHuanjie*/
@WebService
@SOAPBinding(style=SOAPBinding.Style.RPC)
public interface IComputeService {public int add(int a, int b);
}

3、创建IComputeService接口实现类ComputeService,代码如下:

package com.ghj.service.impl;import javax.jws.WebService;import com.ghj.service.IComputeService;/*** SIB Service Implemention Bean * * @author GaoHuanjie*/
//endpointInterface指定接入点接口:接口必须存在
@WebService(endpointInterface="com.ghj.service.IComputeService")
public class ComputeService implements IComputeService{@Overridepublic int add(int a, int b) {System.out.println(a+"+"+b+"="+(a+b));return a+b;}
}

4、创建启动服务器端服务的类StartServer,代码如下:

package com.ghj.server;import javax.xml.ws.Endpoint;import com.ghj.service.impl.ComputeService;/*** 启动服务器端服务* * @author GaoHuanjie*/
public class StartServer {public static void main(String[] args) {String address = "http://localhost:8888/compute";Endpoint.publish(address, new ComputeService());}
}

二、创建WebService客户端:

1、新建一个名为“client”的Java工程;

2、将“server”工程中的IComputeService接口拷贝到“client”工程中;

3、创建调用“server”工程IComputeService接口实现类的代码,代码如下:

package com.ghj.client;import java.net.MalformedURLException;
import java.net.URL;import javax.xml.namespace.QName;
import javax.xml.ws.Service;import com.ghj.service.IComputeService;public class Client {public static void main(String[] args) {try {URL url = new URL("http://localhost:8888/compute?wsdl");//创建访问wsdl服务地址的urlQName sname = new QName("http://impl.service.ghj.com/", "ComputeServiceService");//通过Qname指明服务的具体信息,其参数值与本工程中的1.png图Service service = Service.create(url,sname);//创建服务IComputeService computeService = service.getPort(IComputeService.class);//实现接口System.out.println(computeService.add(12,33));} catch (MalformedURLException e) {e.printStackTrace();}}
}

三、运行WebService:

1、运行“server”工程中的StartServer类;

2、运行“client”工程中的Client类;

0分下载资源

WebService:JAX-WS实现WebService相关推荐

  1. spring和maven_具有Spring和Maven教程的JAX–WS

    spring和maven Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: ...

  2. 带有Spring和Maven教程的JAX–WS

    Spring框架通过JAX-WS提供对Web服务的远程支持,实际上,如Spring 参考文档中所述 ,有三种将Spring POJO服务公开为JAX-WS Web服务的方式: 公开基于Servlet的 ...

  3. WEBSERVICE之JDK开发webservice

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

  4. 【webservice】spring整合webservice RS风格

    [webservice]spring整合webservice RS风格 UserService package cn.zxl.cxf.service;import java.util.List;imp ...

  5. Java工作笔记-WebService使用JDK搭建WebService及调用

    首先是使用jdk搭建WebService 源码如下: WeatherService.java package webservice;public interface WeatherService {S ...

  6. Java程序员从笨鸟到菜鸟之(一百零八)一步一步学习webservice(二)webservice基本原理

    本来这第二篇打算讲解"开发第一个基于XFire的webservice"的内容来着.但是想想.开发实例只是局限于了会用的层面上.如果想真正的理解webservice还是需要挖掘其原理 ...

  7. C# 创建、部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。 概念性的东西就不说太多,下面开始创建一个简单的webservi

    C# 创建.部署和调用WebService的简单示例 webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice ...

  8. jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService

    概念 JAX-WS2.0的全称Java API for XML-Based Web Service 2.0.JAX-WS2.0是对JAX-RPC1.0规范的扩展,是JAX-RPC1.1的后续版本,JA ...

  9. java webservice 依赖_java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  10. cmd 调用webservice接口_C++ 调用 Webservice gSoap 方法

    大体思路是:使用gsoap生成文件,把生成的相关文件均加载到项目中调用 本文以调用天气的webservice为例子,手把手教你. 步骤一 准备gSOAP工具:将gsoap_2.8.100.zip解压, ...

最新文章

  1. 数据结构与算法常用名词术语整理
  2. R语言把dataframe数据转化为tibble格式、查看每个数据列的缺失值个数、使用数据列的均值对数据列的缺失值进行填充
  3. 用css如何写正方体,css正方体实现--(transform练习)
  4. 内容社区,为什么有必要做内容标签系统?
  5. java io操作_Java IO 操作
  6. 谈谈我的编程之路---WAMP(二)
  7. 构建LAMP平台及应用系统
  8. jmeter 循环取值赋值给form_JMeter系列(三)逻辑控制器详解
  9. 服务器显示数据库,显示数据库服务器上的数据库数据库
  10. osgb转obj工具_在ArcGIS Pro中OSGB数据转换及发布服务流程
  11. 自从微信更新后,广东人都玩疯了!以后语音可以识别英语、粤语啦!
  12. FPGA设计之首——Altera FPGA 选型及官网文档阅读
  13. APP安全——抓包代理工具的设置
  14. Reac16+Monaco打造代码编辑器(前端部分)
  15. 这些安全管理方法,让你不怕勒索者
  16. MVC、MVCS、MTV、MVP框架模式
  17. 为什么IOS比安卓流畅
  18. ELF可执行文件的理解
  19. moviepy剪切视频spleeter视频降噪-CPUGPU
  20. 使用设计模式出任CEO迎娶白富美(6)–冬日暖阳,二毛茶一壶

热门文章

  1. 【NodeJS 学习笔记03】先运行起来再说
  2. 【推荐】一个移动开发的网站
  3. 数据结构与算法之队列
  4. SpringMVC是单例的
  5. Zorin OS:Windows用户无痛转移Linux
  6. C#多态“说来也说”——逻辑层BLL中的多态使用
  7. su and sudo
  8. 2.微服务:从设计到部署 --- 使用 API 网关
  9. 16. XML DOM
  10. 40. Element getAttribute() 方法