摘要:

实现webservice,spring ws,XFire实现方法未实现。(记得补上~)

1 概述

  1.1关键技术

        

    1. SOAP:简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

    2. WSDL:用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

    3. UDDI:一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

    4. 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:

  1. 建立动态web project,项目图如下:

  2. 添加axis的lib下的jar包

  3. 修改编译class输出路径

  4. 编写service类

  5. 发布该类为webservice

  6. 建立客户端,即为下面验证service是否成功

  7. 发布service并建立客户代码

    选择java proxy会自动生成wsClient工程,工程目录如下:

  8. 选择访问的方法

  9. 启动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 实践的更多相关文章

  1. Webservice实践(七)CXF 与Spring结合+tomcat发布

    上一节介绍了如何使用CXF 来发布服务,但是没有介绍使用web 容器来发布,很多项目需要用tomcat 这样的容器来发布.另外本节将介绍CXF 与spring 结合的方法. 一 目标: 1.利用spi ...

  2. java的WebService实践(cxf)

    Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.nankang; import javax.jws ...

  3. paip.myeclipse7 java webservice 最佳实践o228

    paip.myeclipse7  java webservice 最佳实践o228 java的ws实现方案:jax-ws>>xfire ws的测试工具  webservice测试调用工具W ...

  4. WebService安全机制的思考与实践

    近来因业务需要,需要研究webservice,于是便有这篇文章:SpringBoot整合Apache-CXF实践 一.WebService是什么? WebService是一个平台独立的.低耦合的.自包 ...

  5. 利用java webservice调用天气预报实践

    最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法.首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来. 1, ...

  6. Jetty+Xfire 嵌入式webService应用实践

    1:使用场景:Mock公安网证件信息校验 2:Jetty嵌入式Server启动方式:由于Jetty9.x(需jdk7.x以上)以后Server启动方式有略微差异,所以分开说明: 2.1 Jetty9. ...

  7. 编程实践笔记{Java 线程 并发处理 Webservice}(转)

    http://www.cnblogs.com/mingzi/archive/2009/03/09/1406694.html 1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变 ...

  8. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  9. [转载]MVVM模式原理分析及实践

    没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...

随机推荐

  1. mailto调用本地默认客户端发邮件

    下面介绍如何利用 Mailto功能: 实现 Mailto的基本html代码: <a href="mailto:123@qq.com">点击这里发邮件!</a> ...

  2. 请教 C# 异步 async await 问题

    各位园友,之前对C#异步只是肤浅了解,请教一个具体问题. 需求: 前台会发送一个Array,这个数组都是 id的集合,比较大.分两步,首先保存这些id,然后去调用异步方法. 可以正常返回json,也可 ...

  3. jsp 文件使用 include指令 导入 jspf 分析,及导入jspf 文件后出现乱码问题

    1.为什么要导入jspf文件 在做网站开发中,因为有很多的页面的导航栏是相同的,所以我们要把导航栏提取出来,生成一个jspf文件. 然后在jsp页面中使用 include 指令 导入jspf文件,这样 ...

  4. Python原理 -- 深浅拷贝

    python原理 -- 深浅拷贝 从数据类型说开去 str, num : 一次性创建, 不能被修改, 修改即是再创建. list,tuple,dict,set : 链表,当前元素记录, 下一个元素的位 ...

  5. 10分钟轻松学会python turtle绘图

     1. 画布(canvas) 1.1 相关函数: 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 绘 ...

  6. Quirks模式是什么?它和Standards模式有什么区别

    从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度. 在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差 ...

  7. Oracle Database Transaction Isolation Levels 事务隔离级别

    Overview of Oracle Database Transaction Isolation Levels Oracle 数据库提供如下事务隔离级别: 已提交读隔离级别 可串行化隔离级别 只读隔 ...

  8. my97自定义事件

    onFocus="WdatePicker({onpicked:function(){alert(0);}})"

  9. OpenStack(企业私有云)万里长征第三步——调试成功

    一.前言 折腾了一两个月(中间有事耽搁了半个月),至今日基本调试成功OpenStack,现将中间的部分心得记录下来. 二.环境 使用的是devstack newton版.具体部署过程可以参考cloud ...

  10. tcpdf导出pdf数据支持中文的解决方案

    步骤如下:1.确保你测试tcpdf能正常输出英文内容的pdf2.测试输入中文内容后显示是?的乱码或者空白分析原因,是因为我们输入的中文,tcpdf字体库并不支持,因此乱码或者空白显示 添加一个合适的字 ...