转自:
springboot如何使用soap协议的方式访问webService接口呢?
下文笔者讲述springboot采用soap协议的方式访问webService接口的方法分享,如下所示:
1.引入相应的jar包
commons-discovery commons-discovery 0.5 org.apache.axis axis 1.4 javax.xml.rpc javax.xml.rpc-api 1.1.2
定义soap协议内容,调用webService
public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException{String AppUrl = "******";//webService接口地址String nameSpace = "*******";//SOAPAction :http://**********/// 访问方法String methodName = "************";//方法名String actionUrl = nameSpace + methodName;Object returnObj = null;org.apache.axis.client.Service service = new org.apache.axis.client.Service();Call call = null;call = (Call) service.createCall();QName qName = new QName(nameSpace, methodName);call.setOperationName(qName);call.setSOAPActionURI(actionUrl);call.addParameter(new QName(nameSpace, "A"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数Acall.addParameter(new QName(nameSpace, "S"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数Scall.addParameter(new QName(nameSpace, "D"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数Dcall.addParameter(new QName(nameSpace, "F"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数Fcall.addParameter(new QName(nameSpace, "G"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数Gcall.addParameter(new QName(nameSpace, "H"), XMLType.XSD_STRING, ParameterMode.IN);//设置参数HDocument doc = null;Object[] paramValues = new Object[]{A, S,D,F,G,H};//参数必须是String类型 无需担心webService接口的参数类型call.setTimeout(6000);call.setReturnType(XMLType.XSD_STRING);call.setTargetEndpointAddress(new URL(AppUrl));returnObj = call.invoke(paramValues);System.out.println(returnObj);}