这个工具类是csdn里一个大佬提供的,我只是个搬运工,具体链接实在是找不到了,大家有需要就拿去用。感谢那位大佬。
第一步 : 引入依赖
<!-- axis 依赖开始 -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.3</version>
</dependency>
<!-- axis 依赖结束 -->
第二步 : 工具类使用
public class AxisUtil {
public static String callWsServer(String requestUrl,String requestXml,String nameSpace,String methodName,String methodParamName) throws ServiceException, RemoteException {
//服务地址
Object[] object = new Object[] { requestXml };//请求参数
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(requestUrl);// 远程调用路径
// 调用的命名空间和方法名,namespace 连接后边必须带‘/’
call.setOperationName(new QName(nameSpace, methodName));
call.setUseSOAPAction(true);
//可以在wsdl中找个这个地址
call.setSOAPActionURI(nameSpace+methodName);
//命名空间和参数名,参数名不可以随便写,参数名可以在wsdl文件中找到
call.addParameter(new QName(nameSpace,methodParamName),
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
call.setTimeout(100000);//超时
String result = (String) call.invoke(object);// 远程调用
return result;
}
}