zoukankan      html  css  js  c++  java
  • Webservice 实践

    摘要:

        实现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.39webappsaxis2-1.6.2inwsdl2java.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.39webappsaxis2WEB-INFpojo目录下,启动包含此目录的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

    计划、执行、每天高效的活着学着
  • 相关阅读:
    递归-计算排列组合问题
    递归-字符串翻转
    递归-求字符串的子序列
    递归
    递归
    PHP开发工程师-技能树
    Graph-BFS-Fly-图的广度优先遍历-最小转机问题
    Graph-DFS-Map-图的深度优先遍历-城市地图问题
    Graph-BFS-图的广度优先遍历
    Graph-DFS-图的深度优先遍历
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/3210699.html
Copyright © 2011-2022 走看看