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. Git x SVN rebase事故

    Git x SVN rebase事故 @author ixenos 2019-01-09 14:21:21 前言: 昨天在Git x SVN 中进行git svn dcommit的时候,提示需要再进行 ...

  2. java第五章 子类与继承

    5.1子类与父类 1   java不支持多重继承,即一个子类不可以从多个父类中同时继承,而C++中可以. 人们习惯地称子类与父类的关系式“is—a”的关系 2   再类的声明过程中,通过关键字exte ...

  3. 手写数字0-9的识别代码(SVM支持向量机)

    帮一个贴吧的朋友改的一段代码,源代码来自<机器学习实战> 原代码的功能是识别0和9两个数字 经过改动之后可以识别0~9,并且将分类器的产生和测试部分分开来写,免得每次测试数据都要重新生成分 ...

  4. 常州模拟赛d6t3 噪音

    FJ有M个牛棚,编号1至M,刚开始所有牛棚都是空的.FJ有N头牛,编号1至N,这N头牛按照编号从小到大依次排队走进牛棚,每一天只有一头奶牛走进牛棚.第i头奶牛选择走进第p[i]个牛棚.由于奶牛是群体动 ...

  5. 洛谷 [P2148] E&G

    SG函数的应用 首先每一组都是独立的,所以我们可以求出每一组的SG值异或出来. 那么怎么求每一组的SG值呢,网上的题解都是打表找规律,但其实这个规律是可以证明的 先看规律: x为奇数,y为奇数:SG= ...

  6. bigdata related

    hive: http://lxw1234.com/archives/2015/07/413.htm 搜狗实验室数据集: https://www.sogou.com/labs/resource/list ...

  7. 【转】3年PHPer的面试总结

    [转]3年PHPer的面试总结 算法# 1.反转函数的实现# /** * 反转数组 * @param array $arr * @return array */ function reverse($a ...

  8. Yii 之控制器创建使用

    在根目录下的controllers目录下创建控制器HelloController.php: <?php namespace app\controllers; use yii\web\Contro ...

  9. (2)git本地生成SSH关联github

    1.安装git 2.打开 Git Bash 输入ssh ,查看是否安装了ssh 这个界面是安装了的意思 3.生成ssh 输入ssh-keygen -t rsa 指令, 再连续按三次回车 会生成两个文件 ...

  10. CMDB资产管理系统的数据表设计

    Server表: asset = models.OneToOneField('Asset') 主机名(hostname) sn号(sn) 制造商(manufacture) 系统(os_platform ...