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

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

一、创建WebService服务器端:

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

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{ @Override
public 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”的Javaproject;

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

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

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服务地址的url
QName sname = new QName("http://impl.service.ghj.com/", "ComputeServiceService");//通过Qname指明服务的详细信息,其參数值与本project中的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”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. Codeforces Round #415 (Div. 2) 翻车啦

    A. Straight «A» time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  2. POJ-1442 Black Box,treap名次树!

                                                      Black Box 唉,一天几乎就只做了这道题,成就感颇低啊! 题意:有一系列插入查找操作,插入每次 ...

  3. 【Bzoj】1001狼抓兔子(平面图最小割转对偶图最短路)

    YEAH 题目链接 终于做对这道题啦    建图的艰辛难以言表- - 顺便说一句我队列转STL啦 狼抓兔子的地图符合平面图定义,于是将该图转成对偶图并求出对偶图的最短路即可. 这篇博客给了我极大的帮助 ...

  4. 谈Elasticsearch下分布式存储的数据分布

     对于一个分布式存储系统来说,数据是分散存储在多个节点上的.如何让数据均衡的分布在不同节点上,来保证其高可用性?所谓均衡,是指系统中每个节点的负载是均匀的,并且在发现有不均匀的情况或者有节点增加/删除 ...

  5. BZOJ 4004 [JLOI2015]装备购买 ——线性基

    [题目分析] 题目很简单,就是要维护一个实数域上的线性基. 仿照异或空间的线性基的方法,排序之后每次加入一个数即可. 卡精度,开long double 和 1e-6就轻松水过了. [代码] #incl ...

  6. 如何将文件上传到ftp

    方法1(推荐,炒鸡简单):双击我的电脑,在地址栏里输入你的ftp地址回车(比如: ftp://220.103.86.96),然后会弹出一个输入登录账号和密码的对话框,输入你的ftp账号和密码回车便进入 ...

  7. miller_rabin + pollard_rho模版

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<math.h> #incl ...

  8. Java学习:二 基础

    2014 - 5 - 22 上午 Java对大小写敏感.   点号(.)用于调用方法,Java的能用语法是: object.method(parameters);   Java中的常量声明使用fina ...

  9. Day 5 Linux之用户、群组和权限

    Linux之用户.群组和权限 一.各文件及内容对应含义 1./etc/passwd文件 功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 含义:如下图所示. 2./et ...

  10. hdu 4885 (n^2*log(n)判断三点共线建图)+最短路

    题意:车从起点出发,每次只能行驶L长度,必需加油到满,每次只能去加油站或目的地方向,路过加油站就必需进去加油,问最小要路过几次加油站. 开始时候直接建图,在范围内就有边1.跑最短了,再读题后发现,若几 ...