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 -->
原文地址:https://www.cnblogs.com/xiaoyu1994/p/8511080.html