zoukankan      html  css  js  c++  java
  • AxisWebservice 发送多参数配置

    1、在web.xml中配置代码如下

    <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>
    org.apache.axis.transport.http.AxisServlet
    </servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/service/*</url-pattern>
    </servlet-mapping>

    2.在service-config.wsdd配置文件,配置如下


    <service name="webService" provider="java:RPC">  --配置的webservice的命名空间 web.xml中配置的service/webService (访问路径)
    <parameter name="allowedMethods" value="isAlive,save,sendt" /> --配置的时访问的方法名
    <parameter name="className" value="com.ai.qw.toptea.className" /> --方法所在的类,要求全限定名
    </service>

    3、客户端代码如下

    package com.ai.test;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.ser.BeanDeserializerFactory;
    import org.apache.axis.encoding.ser.BeanSerializerFactory;

    import com.ai.util.Address;

    public class WebServiceTest {
    public static void main(String[] args) {
    String url = "http://10.12.1.229/itsm3/service/ITSMTicketService";
    String method = "saveTicket";
    String idCard ="111222";

    String ticketInfo = "{}";
    Map map = new HashMap<String,String>();
    map.put("参数1", "132457");
    map.put("参数2", "taskw");
    map.put("参数3", "2017-9-2 12:32:21");
    map.put("ticketInfo", ticketInfo);
    map.put("参数4", "210");
    map.put("参数5", "12345648522");
    map.put("参数6", "4ae9f34b-e9a8-4f82-b86a-8c51d36ce70a");
    map.put("参数7", "-1");



    try {
    getWebServiceResult(url,method,map);
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    private static String getWebServiceResult( String url, String method, Map map) throws Exception{
    String rtnXml = null;
    try {
    String endpoint = url;
    Service service = new Service();
    Call call = (Call) service.createCall();

    call.addParameter(new QName("参数1"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);  --与参数顺序相对应
    call.addParameter(new QName("参数2"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应
    call.addParameter(new QName("参数3"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应
    call.addParameter(new QName("参数4"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应

    call.addParameter(new QName("参数5"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应
    call.addParameter(new QName("参数6"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应
    call.addParameter(new QName("参数7"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);   --与参数顺序相对应
    call.addParameter(new QName("参数8"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN); // 接口的参数

    call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型




    call.setUseSOAPAction(true);
    call.setTargetEndpointAddress(new java.net.URL(endpoint));
    call.setOperationName(method);
    // call.setReturnType(new QName("pid"));
    rtnXml = (String) call.invoke(new Object[]{
    map.get("参数1"),   
    map.get("参数2"),
    map.get("参数3"),
    map.get("参数4"),
    map.get("参数5"),
    map.get("参数6"),
    map.get("参数7"),
    map.get("参数8")});


    } catch (Exception e) {
    e.printStackTrace();
    }
    return rtnXml;
    }
    }

    注意:有一个错误弄了好久   缺少j这个ar包

    <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
    <dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.sun.org.apache/jaxp-ri -->
  • 相关阅读:
    快速幂算法
    素数筛
    数论知识点总结
    ABOUT MY NAME
    CF1043F Make It One
    树形DP
    魔兽世界联盟8.1主线任务
    模板std::mutex用法:
    【转】正确的提问方式
    第一个Python游戏窗口
  • 原文地址:https://www.cnblogs.com/xiaoyu1994/p/8511080.html
Copyright © 2011-2022 走看看