首页 技术 正文
技术 2022年11月21日
0 收藏 556 点赞 3,568 浏览 3452 个字

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 -->
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731