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          }

     

  • 相关阅读:
    微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码
    设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)
    微信小程序之上传图片和图片预览
    微信小程序上传图片(前端+PHP后端)
    微信小程序拒绝授权后重新拉起授权窗口
    微信小程序如何使用 Git 实现版本管理和协作开发
    配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境
    linux 系统下Anaconda的安装【安装python3.6环境首选】
    利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)
    利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验(一)
  • 原文地址:https://www.cnblogs.com/zf2011/p/2250941.html
Copyright © 2011-2022 走看看