WebService:JAX-WS实现WebService
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的更多相关文章
- Spring整合CXF步骤,Spring实现webService,spring整合WebService
Spring整合CXF步骤 Spring实现webService, spring整合WebService >>>>>>>>>>>> ...
- 【WebService】快速构建WebService示例
package com.slp.webservice; import javax.jws.WebService; /** * Created by sanglp on 2017/2/25. * 接口 ...
- 关于wcf,webservice,webapi或者其他服务或者接口有什么区别 WCF、WebAPI、WebService之间的区别 【转载】HTTP和SOAP完全就是两个不同的协议 WebService学习总结(一)——WebService的相关概念
wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递.要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成.解析的事情webapi遵循是rest ...
- WEBSERVICE之JDK开发webservice
转自:https://www.cnblogs.com/w-essay/p/7357262.html 一.开发工具与环境 1. jdk1.6版本以上(jdk1.6.0_21及以上版本) 2 .eclip ...
- WebService – 2.动态调用WebService
在本节课程中,将演示如何通过程序动态添加.调用.编译.执行WebService并返回结果. WebService动态调用示意图 WebService相关知识 代码文档对象模型CodeDom的使用 编程 ...
- webService基础知识--认识WebService
之前在找工作的时候,有面试官问到WebService,当时没有接触过,正好现在做的项目中有用到WebService,所以就趁着业余时间来学习了. 一.简介 先来看看百度百科对WebService的解释 ...
- WebService学习总结(一)——WebService的相关概念
一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...
- 【转】@javax.ws.rs Webservice注解
用于webservice. 1.路径 @javax.ws.rs.Path 标识要请求的资源类或资源方法的uri路径. 例,@Path("animal"),表示下一层路径是anima ...
- So easy Webservice 7.CXF 发布WebService
(一)使用ServerFactoryBean 方式实现发布WS服务 1.新建项目,添加cxf jar包到项目中 2.编写服务实现类 /** * CXF WebService * 不用注解 * @aut ...
- Spring+CXF整合来管理webservice(服务器启动发布webservice)
Spring+CXF整合来管理webservice 实现步骤: 1. 添加cxf.jar 包(集成了Spring.jar.servlet.jar ),spring.jar包 ,serv ...
随机推荐
- Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)
昨晚打得小号,虽然很菜,可是还是涨了些rating A. Arpa and a research in Mexican wave time limit per test 1 second memory ...
- Android ListView子item高度定长固定值无效问题
在项目开发中遇到一个实际问题:ListView中,打算给每个子item设定一个具体的高度值如128dp,256dp,在子item中把根布局的高度值写死写成定长,但是不管怎么样,高度一直都没变化.开始以 ...
- [BZOJ1604] [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居(好题)
传送门 良心题解 #include <set> #include <cstdio> #include <iostream> #include <algorit ...
- 算法复习——2—sat(bzoj2199)
题目: Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 ...
- BZOJ4726: [POI2017]Sabota?
$n \leq 500000$的树,开始有一个点是坏的,如果一个子树中坏点比例(不包括根节点)超过x那这整棵子树就会变坏,问最坏情况下不超过$K$个坏点的情况下$x$最小是多少. 被坑成傻逼.. 可以 ...
- 【Tomcat】linux下实时查看tomcat运行日志
今天在部署一个项目到linux服务器的时候一直报错,可是在日志文件中也没有记录.但是在本地测试的时候都没有错误,在windoesServer服务器上也没错误,实在找不到原因,因此想的实时查看tomca ...
- MySQL 中 key, primary key ,unique key,index的区别
一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_n ...
- What should do in Production
Using Compose in production https://docs.docker.com/compose/production/
- cssnext下一代的css
前端技术更新迭代的速度令人咂舌,互联网+的风头刚起那几年,前端技术大多还停留在jquery阶段,按需加载还停留在seajs和requirejs的阶段,css3和H5也不过才崭露头角,但经过几年的飞速发 ...
- Codeforces 961 D Pair Of Lines
题目描述 You are given nn points on Cartesian plane. Every point is a lattice point (i. e. both of its c ...