WebService和Java核心技术中的RMI一样用于实现异构平台上的应用程序之间数据的交互,唯一不同的是这样的技术屏蔽了语言之间的差异。这也是其大行其道的原因。

实现WebService的技术多种多样,能够使用JAX-WS、CXF、Axis2或Metro等方式实现WebService,接下来会给大家展示怎样使用不同的方式实现WebService。本篇博客为大家演示怎样使用JAX-WS实现WebService:

一、创建WebService服务器端:

1、新建一个名为“server”的Javaproject;

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

  1. package com.ghj.service;
  2.  
  3. import javax.jws.WebService;
  4. import javax.jws.soap.SOAPBinding;
  5.  
  6. /**
  7. * SEI Service Endpoint Interface 公布的服务接口
  8. *
  9. * @author GaoHuanjie
  10. */
  11. @WebService
  12. @SOAPBinding(style=SOAPBinding.Style.RPC)
  13. public interface IComputeService {
  14.  
  15. public int add(int a, int b);
  16. }

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

  1. package com.ghj.service.impl;
  2.  
  3. import javax.jws.WebService;
  4.  
  5. import com.ghj.service.IComputeService;
  6.  
  7. /**
  8. * SIB Service Implemention Bean
  9. *
  10. * @author GaoHuanjie
  11. */
  12. //endpointInterface指定接入点接口:接口必须存在
  13. @WebService(endpointInterface="com.ghj.service.IComputeService")
  14. public class ComputeService implements IComputeService{
  15.  
  16. @Override
  17. public int add(int a, int b) {
  18. System.out.println(a+"+"+b+"="+(a+b));
  19. return a+b;
  20. }
  21. }

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

  1. package com.ghj.server;
  2.  
  3. import javax.xml.ws.Endpoint;
  4.  
  5. import com.ghj.service.impl.ComputeService;
  6.  
  7. /**
  8. * 启动服务器端服务
  9. *
  10. * @author GaoHuanjie
  11. */
  12. public class StartServer {
  13. public static void main(String[] args) {
  14. String address = "http://localhost:8888/compute";
  15. Endpoint.publish(address, new ComputeService());
  16. }
  17. }

二、创建WebService客户端:

1、新建一个名为“client”的Javaproject;

2、将“server”project中的IComputeService接口复制到“client”project中;

3、创建调用“server”projectIComputeService接口实现类的代码。代码例如以下:

  1. package com.ghj.client;
  2.  
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5.  
  6. import javax.xml.namespace.QName;
  7. import javax.xml.ws.Service;
  8.  
  9. import com.ghj.service.IComputeService;
  10.  
  11. public class Client {
  12. public static void main(String[] args) {
  13. try {
  14. URL url = new URL("http://localhost:8888/compute?wsdl");//创建訪问wsdl服务地址的url
  15. QName sname = new QName("http://impl.service.ghj.com/", "ComputeServiceService");//通过Qname指明服务的详细信息,其參数值与本project中的1.png图
  16. Service service = Service.create(url,sname);//创建服务
  17. IComputeService computeService = service.getPort(IComputeService.class);//实现接口
  18. System.out.println(computeService.add(12,33));
  19. } catch (MalformedURLException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. }

三、执行WebService:

1、执行“server”project中的StartServer类;

2、执行“client”project中的Client类。

0分下载资源

WebService:JAX-WS实现WebService的更多相关文章

  1. Spring整合CXF步骤,Spring实现webService,spring整合WebService

    Spring整合CXF步骤 Spring实现webService, spring整合WebService >>>>>>>>>>>> ...

  2. 【WebService】快速构建WebService示例

    package com.slp.webservice; import javax.jws.WebService; /** * Created by sanglp on 2017/2/25. * 接口 ...

  3. 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念

    wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...

  4. WEBSERVICE之JDK开发webservice

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

  5. WebService – 2.动态调用WebService

    在本节课程中,将演示如何通过程序动态添加.调用.编译.执行WebService并返回结果. WebService动态调用示意图 WebService相关知识 代码文档对象模型CodeDom的使用 编程 ...

  6. webService基础知识--认识WebService

    之前在找工作的时候,有面试官问到WebService,当时没有接触过,正好现在做的项目中有用到WebService,所以就趁着业余时间来学习了. 一.简介 先来看看百度百科对WebService的解释 ...

  7. WebService学习总结(一)——WebService的相关概念

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

  8. 【转】@javax.ws.rs Webservice注解

    用于webservice. 1.路径 @javax.ws.rs.Path 标识要请求的资源类或资源方法的uri路径. 例,@Path("animal"),表示下一层路径是anima ...

  9. So easy Webservice 7.CXF 发布WebService

    (一)使用ServerFactoryBean 方式实现发布WS服务 1.新建项目,添加cxf jar包到项目中 2.编写服务实现类 /** * CXF WebService * 不用注解 * @aut ...

  10. Spring+CXF整合来管理webservice(服务器启动发布webservice)

    Spring+CXF整合来管理webservice    实现步骤:      1. 添加cxf.jar 包(集成了Spring.jar.servlet.jar ),spring.jar包 ,serv ...

随机推荐

  1. 【LeetCode】Design Linked List(设计链表)

    这道题是LeetCode里的第707到题.这是在学习链表时碰见的. 题目要求: 设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的 ...

  2. TOJ 假题之 Cow Brainiacs

    1570: Cow Brainiacs  Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByteTotal Submit: ...

  3. oracle create directory

    1.新建directory的语法 CREATE [OR REPLACE] DIRECTORY directory AS 'pathname'; 例如: create or replace direct ...

  4. Python之回调函数

    在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 有两种类型的回调函数:即bloc ...

  5. 算法复习——拓展欧几里得(poj1061)

    题目: Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很 ...

  6. spring工作机制及为什么要用?

    spring工作机制及为什么要用?1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作.2.DispatcherSer ...

  7. 理解 virbr0

    virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能. virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟 ...

  8. UVa10539

    http://vjudge.net/problem/UVA-10539 先打出来sqrt(n)以内的素数表,然后对于每个素数x,他对答案的贡献就是最大的p使x^p<=n,即log(x,n).注意 ...

  9. kail Linux 安装Parallels Tools

    网上好多都是Parallels8的 针对Parallels 9 的还真不好找..... 自己捣鼓了一阵 终于可以安装了,但还是有错误,因为公司网络太不给力....回家再测试吧 1.在桌面新建一个文件夹 ...

  10. Laravel 中视图中使用PHP代码

    {{ $name }}{{ date('Y-m-d H:i:s',time()) }}{{ in_array($name,$arr)?'true':'false' }} {{ isset($name) ...