WebService : axis

web.xml配置

    <listener>
        <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
    </listener>
    
      <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
      </servlet>

      <servlet>
        <servlet-name>AdminServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
        <load-on-startup>100</load-on-startup>
      </servlet>

server-config.wsdd

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>   
    <service name="myService" provider="java:RPC">
       <!--这里的name是你的service名字 访问的时候要用得着的-->
       <parameter name="className" value="com.service.WbTest"/>
       <!--这里的value是你所提供的的供外部访问的方法所在的类-->
        <parameter name="allowedMethods" value="*"/>
        <!--供外部访问的方法-->
    </service>
    <transport name="http">
         <requestFlow>
            <handler type="URLMapper"/>
         </requestFlow>
    </transport>
</deployment>

客户端测试

    String endpoint = "http://192.168.0.193:8080/services/myService";
    Service service = new Service(); //
    Call call = (Call) service.createCall(); //
    call.setTargetEndpointAddress(new java.net.URL(endpoint));//
        
    QName qn = new QName("urn:MmsRoom", "MmsRoom");
    call.registerTypeMapping(MmsRoom.class, qn, BeanSerializerFactory.class, BeanDeserializerFactory.class);
    call.setOperationName("getUserName");
    call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);
    call.setReturnClass(List.class);
        
    List<MmsRoom> users = (List<MmsRoom>)call.invoke(new Object[]{"R8@jx"});

原文地址:https://www.cnblogs.com/zhoucx66/p/5587412.html