Webservice 实践
摘要:
实现webservice,spring ws,XFire实现方法未实现。(记得补上~)
1 概述
1.1关键技术
SOAP:简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
UDDI:一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
XML
1.2优点
1)软件和数据重用
2)应用程序集成
3)B2B的集成
4)跨防火墙的通信
2 目前实现技术
比较流行的技术有:Jaxws ,Axis2 , spring ws ,,XFire
Eclipse 自带支持axis2,对于XFire需要自行配置。
对比如下:http://blog.csdn.net/itwit/article/details/7576562
3 技术实例(eclipse3.6)
如果只是需要快速搭建webservice,建议用Jaxws,不需要任何配置,直接java代码搞定;
Eclipse自带的axis2,使用axis2搭建webservice也很方便,不过相对上面还是复杂些;
其他还未实验,待更新
3.1 Jaxws实现实例
Sun公司自己实现的webservice,已经包含在jdk里面了。
工程目录:
TimeServer.java类
TimeServerImpl.java类
TimeServerPublisher.java类
TimeClient.java类
验证:
启动TimeServerPublisher.java类
启动TimeClient.java类
输出:
注意:
发布的网址URI,与TimeClient.java类中创建server对应,这是server内部命名空间
而
这里发布的网址是对外的,与TimeClient.java类中创建server对应,
3.2 Axis2实现实例
3.2.1不依赖eclipse创建webservice:
http://www.cnblogs.com/qc-hao/archive/2013/02/02/2889800.html
3.2.2 java远程调用webservice:
Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。wsdl2java.bat命令可以在%Axis2安装目录%bin目录中找到。在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,配置如图:
调用WebService的代码生成:
把C:\apache-tomcat-7.0.39\webapps\axis2-1.6.2\bin\wsdl2java.bat拖到cmd命令行中
紧接着添加"-uri http://localhost:8080/axis2/services/HelloService?wsdl -p client -s -o service" 回车后在如下目录中就可以找到HelloServiceStub.java类,如图所示
生成了HelloServiceStub.java类后,就可以在Eclipse中使用客户端调用webservice了。然后建立动态web项目,导入Axis2包,工程目录如下:
HelloServiceStub.java类即为刚刚生成的HelloServiceStub.java类;
TestService.java类,代码如下:
注: HelloService即为"3.3.1不依赖eclipse创建webservice:"中的HelloService,储存于C:\apache-tomcat-7.0.39\webapps\axis2\WEB-INF\pojo目录下,启动包含此目录的tomcat,再运行TestService.java类,即可得到输出结果。
输出结果:
3.2.3 在eclipse中创建webservice:
- 建立动态web project,项目图如下:
- 添加axis的lib下的jar包
- 修改编译class输出路径
- 编写service类
- 发布该类为webservice
- 建立客户端,即为下面验证service是否成功
- 发布service并建立客户代码
选择java proxy会自动生成wsClient工程,工程目录如下:
- 选择访问的方法
- 启动server,发布service
3.2.5 验证webservice
方法一:
浏览器输入:http://localhost:8080/wsClient/sampleHelloServiceProxy/TestClient.jsp
显示
输入username,显示result
方法二:
中的
webservice Explore
输入webservice对应的wsdl路径,即可验证
方法三:
首先发布webservice,运行"3.3.3 在eclipse中创建webservice:"所述客户端,输出结果:
3.3 spring ws实现实例
http://static.springsource.org/spring-ws/sites/1.5/reference/html/tutorial.html
3.4 XFire 实现实例
http://www.cnblogs.com/simle/archive/2011/10/31/2230091.html
4 常用webservice汇总
http://developer.51cto.com/art/200908/147125.htm
http://www.cnblogs.com/tianguook/archive/2010/09/29/1838469.html
Webservice 实践的更多相关文章
- Webservice实践(七)CXF 与Spring结合+tomcat发布
上一节介绍了如何使用CXF 来发布服务,但是没有介绍使用web 容器来发布,很多项目需要用tomcat 这样的容器来发布.另外本节将介绍CXF 与spring 结合的方法. 一 目标: 1.利用spi ...
- java的WebService实践(cxf)
Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.nankang; import javax.jws ...
- paip.myeclipse7 java webservice 最佳实践o228
paip.myeclipse7 java webservice 最佳实践o228 java的ws实现方案:jax-ws>>xfire ws的测试工具 webservice测试调用工具W ...
- WebService安全机制的思考与实践
近来因业务需要,需要研究webservice,于是便有这篇文章:SpringBoot整合Apache-CXF实践 一.WebService是什么? WebService是一个平台独立的.低耦合的.自包 ...
- 利用java webservice调用天气预报实践
最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法.首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来. 1, ...
- Jetty+Xfire 嵌入式webService应用实践
1:使用场景:Mock公安网证件信息校验 2:Jetty嵌入式Server启动方式:由于Jetty9.x(需jdk7.x以上)以后Server启动方式有略微差异,所以分开说明: 2.1 Jetty9. ...
- 编程实践笔记{Java 线程 并发处理 Webservice}(转)
http://www.cnblogs.com/mingzi/archive/2009/03/09/1406694.html 1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变 ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
随机推荐
- jquery中的$(document).ready()使用小结
本篇文章主要是对jquery中的$(document).ready()使用方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 window.onload = function(){ ...
- 深入浅出TCP/IP协议栈
TCP/IP协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输.TCP/IP协议采用4层结构,分别是应用层.传输层.网络层和链路层, ...
- webpack的简单配置
本人刚开始也不会写webpack配置,刚开始在网上搜索了了一些,看的也是刚刚理解,所以准备自己写下来,已作纪念和贡献给像我一样不会配置的“童鞋”们! 1.创建webpack配置文件 在项目文件下创建一 ...
- 【Android Developers Training】 41. 向另一台设备发送文件
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 5.如何修改maven本地仓库
首先测试机子上时候安装上maven,步骤是win+r-->cmd-->mvn -v-->看其是否出现如下字样: 如果时间长了你忘记了你安装的maven目录或者jdk目录,那么下面 ...
- 2.如何修改apache的默认端口
打开apache的conf文件夹,找到server.xml,修改里面这段的port即可,重启apache,修改成功
- JavaScript 定义 类
JavaScript 定义 类 一 构建类的原则 构造函数 等于 原型的constructor //构造函数 function Hero(name,skill){ this.name = name; ...
- Agile&DevOps究竟谁是魔法棒
天下没有神奇的配方 很抱歉,文章的开头我就要说出这个残酷的事实 - 世界上没有任何工具可以魔法般的让你实现敏捷,精益,DevOps.如果只是依赖了工具的自动化,实现了自动化Dev或者Ops,那么别忘了 ...
- window.getSelection和document.selection
window.getSelection和document.selection IE9以下支持:document.selection IE9.Firefox.Safari.Chrome和Opera支 ...
- Java IO学习笔记(二)缓冲流
处理流:包在别的流上的流,可以对被包的流进行处理或者提供被包的流不具备的方法. 一.缓冲流:套接在相应的节点流之上,带有缓冲区,对读写的数据提供了缓冲的功能,提高读写效率,同时增加一些新的方法.可以减 ...