• 利用Apache AXIS 1 发布WebService


    首先,AXIS 是apache的作品。

    1.到apache去下载相关的包,包括axis.jar、axis-ant.jar、commons-discovery-0.2.jar等。将jar包放到WEB-INF/lib下面

    2.在WEB.XML中按如下配置,直接copy进去就可以

    1.  
      <servlet>
    2.  
      <servlet-name>AxisServlet</servlet-name>
    3.  
      <servlet-class>
    4.  
      org.apache.axis.transport.http.AxisServlet
    5.  
      </servlet-class>
    6.  
      </servlet>
    7.  
      <servlet>
    8.  
      <servlet-name>AdminServlet</servlet-name>
    9.  
      <servlet-class>
    10.  
      org.apache.axis.transport.http.AdminServlet
    11.  
      </servlet-class>
    12.  
      <load-on-startup>100</load-on-startup>
    13.  
      </servlet>
    14.  
      <servlet>
    15.  
      <servlet-name>SOAPMonitorService</servlet-name>
    16.  
      <servlet-class>
    17.  
      org.apache.axis.monitor.SOAPMonitorService
    18.  
      </servlet-class>
    19.  
      <init-param>
    20.  
      <param-name>SOAPMonitorPort</param-name>
    21.  
      <param-value>5001</param-value>
    22.  
      </init-param>
    23.  
      <load-on-startup>100</load-on-startup>
    24.  
      </servlet>
    25.  
      <servlet-mapping>
    26.  
      <servlet-name>AxisServlet</servlet-name>
    27.  
      <url-pattern>/servlet/AxisServlet</url-pattern>
    28.  
      </servlet-mapping>
    29.  
      <servlet-mapping>
    30.  
      <servlet-name>AxisServlet</servlet-name>
    31.  
      <url-pattern>*.jws</url-pattern>
    32.  
      </servlet-mapping>
    33.  
      <servlet-mapping>
    34.  
      <servlet-name>AxisServlet</servlet-name>
    35.  
      <url-pattern>/services/*</url-pattern>
    36.  
      </servlet-mapping>
    37.  
      <servlet-mapping>
    38.  
      <servlet-name>SOAPMonitorService</servlet-name>
    39.  
      <url-pattern>/SOAPMonitor</url-pattern>
    40.  
      </servlet-mapping>


    3.创建一个webservice类,就是一个普通的类包含一个普通方法

    1.  
      public class SayHello {
    2.  
       
    3.  
      public String hello(String name){
    4.  
      return "Hello "+name;
    5.  
      }
    6.  
       
    7.  
      public void in(String name){
    8.  
      System.out.println(name + "come");
    9.  
      Log4j.getLogger().info(name + "come");
    10.  
      }
    11.  
      }


    4.配置server-config.wsdd,server-config.wsdd的路径在WEB-INF下面,参考第一张图。

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <deployment name="defaultClientConfig"
    3.  
      xmlns="http://xml.apache.org/axis/wsdd/"
    4.  
      xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
    5.  
      xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">
    6.  
       
    7.  
      <globalConfiguration>
    8.  
      <parameter name="disablePrettyXML" value="true"/>
    9.  
      <parameter name="dotNetSoapEncFix" value="true"/>
    10.  
      <parameter name="enableNamespacePrefixOptimization" value="false"/>
    11.  
      <requestFlow>
    12.  
      <handler type="java:org.apache.axis.handlers.JWSHandler">
    13.  
      <parameter name="scope" value="session"/>
    14.  
      </handler>
    15.  
      <handler type="java:org.apache.axis.handlers.JWSHandler">
    16.  
      <parameter name="scope" value="request"/>
    17.  
      <parameter name="extension" value=".jwr"/>
    18.  
      </handler>
    19.  
      <!-- uncomment this if you want the SOAP monitor -->
    20.  
      <!--
    21.  
      <handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
    22.  
      -->
    23.  
      </requestFlow>
    24.  
      <!-- uncomment this if you want the SOAP monitor -->
    25.  
      <!--
    26.  
      <responseFlow>
    27.  
      <handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
    28.  
      </responseFlow>
    29.  
      -->
    30.  
      </globalConfiguration>
    31.  
       
    32.  
      <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
    33.  
      <handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
    34.  
      <handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>
    35.  
       
    36.  
      <service name="AdminService" provider="java:MSG">
    37.  
      <namespace>http://xml.apache.org/axis/wsdd/</namespace>
    38.  
      <parameter name="allowedMethods" value="AdminService"/>
    39.  
      <parameter name="enableRemoteAdmin" value="false"/>
    40.  
      <parameter name="className" value="org.apache.axis.utils.Admin"/>
    41.  
      </service>
    42.  
       
    43.  
      <service name="Version" provider="java:RPC">
    44.  
      <parameter name="allowedMethods" value="getVersion"/>
    45.  
      <parameter name="className" value="org.apache.axis.Version"/>
    46.  
      </service>
    47.  
       
    48.  
      <!-- ======================以上内容一般不需要修改===========================-->
    49.  
       
    50.  
       
    51.  
      <!-- ======================================================================
    52.  
      Services:Demo,此段包含Sevice配置实例
    53.  
      =======================-->
    54.  
      <!--
    55.  
      示例1: 简单 Service
    56.  
      情境: 包含下例代码中基本属性.所有参数传递均为元数据,即int、float、double、String、boolean等非对象数据;
    57.  
      可以访问此Service中所有的方法
    58.  
      引用: 在C#中借助于IDE引用。
    59.  
      -->
    60.  
      <service name="WSTest1" provider="java:RPC"> <!-- name: 此WebService的名称;provider:工作模式 -->>
    61.  
      <parameter name="className" value="org.tp.SayHello"/><!-- 此Service对应的实现类 -->
    62.  
      <parameter name="allowedMethods" value="*"/><!-- 可以访问这个Service中所有的方法 -->
    63.  
      </service>
    64.  
       
    65.  
      <!-- ======================以下内容一般不需要修改===========================-->
    66.  
      <transport name="http">
    67.  
      <parameter name="qs:list"
    68.  
      value="org.apache.axis.transport.http.QSListHandler"/>
    69.  
      <parameter name="qs:method"
    70.  
      value="org.apache.axis.transport.http.QSMethodHandler"/>
    71.  
      <parameter name="qs:wsdl"
    72.  
      value="org.apache.axis.transport.http.QSWSDLHandler"/>
    73.  
      <requestFlow>
    74.  
      <handler type="URLMapper"/>
    75.  
      <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler">
    76.  
      </handler>
    77.  
      </requestFlow>
    78.  
      </transport>
    79.  
       
    80.  
      <transport name="local">
    81.  
      <responseFlow>
    82.  
      <handler type="LocalResponder"/>
    83.  
      </responseFlow>
    84.  
      </transport>
    85.  
       
    86.  
      </deployment>

    配置文件中有的东西不固定,在文件注释中描述得很清楚。针对第二步中的类,我们只看配置中的示例1,其中红色标记部分是实现类的路径,注意校正就OK。

    5.这样一个最基本的webservice就布好了,运行服务器(本例中是tomcat 6)。在地址栏中输入

    http://127.0.0.1:8080/appName/services

    注意校正URL,services是固定的。

    运行后会列出本应用服务器上发布的webservice

    点我们刚才那个 WSTest1,会出现

    当别人引用webservice时,一般是用http://localhost:8080/DemoLanZhou/services/WSTest1?wsdl这个地址来引用的

    6.开着服务器,等着别人来引用。

    也可以在浏览器测试一下http://localhost:8080/DemoLanZhou/services/WSTest1?method=hello&args=tp

    注意校正地址,参数中method=hello表示调用hello方法,args=tp是传给hello方法的参数。hello方法就是SayHello.hello();最上面定义的那个类。

    上图中选中部分为方法返回的值。

    至此完成一个基本的webservice。

  • 相关阅读:
    pytest常用命令行
    pytest中一些常用插件
    case运行失败进行重试-pytest-rerunfailures插件
    adb 在自动化测试中的截图
    app的冷启动和热启动
    ATX
    UI自动化中常用的三种等待
    allure
    性能指标分析
    接口自动化之接口依赖解决
  • 原文地址:https://www.cnblogs.com/Jeely/p/10761569.html
Copyright © 2020-2023  润新知