zoukankan      html  css  js  c++  java
  • WEBSERVICE客户端

    Axis

      axis全称Apache EXtensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的,不过为C++的版本正在开发中。但Axis并不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎(例如Tomcat)的服务器。

      支持WSDL。

      提供转化WSDL为Java类的工具。

      提供例子程序。

      提供TCP/IP数据包监视工具。

      

      Axis是第三代Apache SOAP,从2000年起,SOAP v2开发小组开始讨论如何让Axis更加灵活、可配置,以及能够处理SOAP和来自W3C的各种XML标准。通过不断地讨论和代码编写,Axis目前取得了如下成果:

      速度提高。 Axis通过基于事件的SAX对XML文档进行处理,从而在速度和效率上比Apache SOAP有所提高。

      灵活性提高。

      稳定性提高。

      提供面向组件的部署。

      提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。

      支持WSDL。包括导出WSDL和客户代理生成等。

      在目前发行1.1版本中有什么东西?

      SOAP1.1/1.2引擎。

      灵活的配置和部署系统。

      支持及时自动生成SOAP服务(JWS)。

      支持所有的基本数据类型,为自定义串行操作提供类型映射系统。

      JavaBean的自动串行操作,包括将自定义属性类型映射到XML的属性和元素。

      RPC和基于消息的SOAP服务提供者。

      从部署好的服务自动生成WSDL。

      WSDL2Java工具可以从WSDL描述文件中产生相应的客户和服务器端SOAP操作框架。

      初步提供安全扩展,能够与Servlet2.2安全集成。

      通过HTTP Cookie和与传输无关的SOAP头信息提供会话跟踪。

      初步支持带附件的SOAP消息。

      在EJB方面提供把EJB作为Web服务的访问途经。

      基于Servlet的HTTP传输。

      基于JMS的传输。

      独立的服务器(但需要HTTP 服务器和Servlet容器支持)。

      提供客户端、服务器端相关应用程序的样例。

      Axis的运行需要如下组件包

      axis.jar

      jaxrpc.jar

      saaj.jar

      commons-logging.jar

      commons-discovery.jar

      wsdl4j.jar

      符合JAXP-1.1的XML处理器。

       http://ws.apache.org/axis/ 官方站点

     

     

     1      try {
     2              String url = http://localhost:8080/webserviceDemo/services;
     3              Service service =new Service();
     4              Call call = (Call) service.createCall();
     5              call.setTargetEndpointAddress(new java.net.URL(url));
     6              //调用的方法名
     7              call.setOperationName("test");
     8              //方法中的参数 (这里可以指定参数类型,也可以使用匿名参数)
     9              //call.addParameter("arg0 ", XMLType.XSD_STRING , ParameterMode.IN);
    10             //call.addParameter("arg1 ", XMLType.XSD_STRING , ParameterMode.IN);
    11            String backStr = (String)call.invoke(new Object[]{"1","1"}); //匿名参数
    12             System.out.println("方法返回值:"+backStr);
    13           } catch (MalformedURLException e) {
    14               e.printStackTrace();
    15               //System.out.println("new java.net.URL(url)错误!");
    16           }catch (RemoteException e) {
    17               e.printStackTrace();
    18               //System.out.println("远程错误!");
    19           }catch (ServiceException e) {
    20               e.printStackTrace();
    21              //System.out.println("Service 获取 Call对象失败!");
    22          }

     

  • 相关阅读:
    管理反思(阶段)
    应用软件系统程序员的三个立面
    再优秀那么一点点
    TCP相关时延
    go wiki整理1
    慢就是快
    给自己一点机会
    竞争
    go mem
    币圈再次过年
  • 原文地址:https://www.cnblogs.com/zf2011/p/2250941.html
Copyright © 2011-2022 走看看