1、ServiceImpl类中的方法调用callService方法
@Value("${bu.check.method}")
private String methodName;
@Value("${bu.check.url}")
private String buCheckUrl;
public boolean getBuUserCheck(String userName) {
boolean status=false;
String[] paramate = {"account"};
Object[] args = {userName};
String result = CommonUtil.callService(methodName,buCheckUrl, paramate, args);
if(!StringUtils.isBlank(result)) {
JSONObject json = JSONObject.fromObject(result);
int flag = Integer.parseInt(json.getString("isActive"));
status = flag==1?true:false;
}
return status;
}
2、CommonUtil.类中封装的callService方法
类中导入的包
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.encoding.XMLType;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
----------------------------------------------------------
/**
* java请求webservice接口方法
* @author zhpeng
* @param methodName 请求接口中对应方法名
* @param url 请求链接url
* @param paramate 参数名称(数组)
* @param args 对应参数的值(数组) paramate[i]月args[i]是一一对应
* @return
*/
public static String callService(String methodName,String url,String[] paramate,Object[] args ) {
Service service = new Service();
String namespace = "http://tempuri.org/"
Call call;
String soapActionURI = namespace+methodName;
try {
call = (Call)service.createCall();
call.setTargetEndpointAddress(url);
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapActionURI);
call.setOperationName(new QName(namespace,methodName));
if(null!=paramate&¶mate.length>0) {
for (int i = 0; i < paramate.length; i++) {
call.addParameter(new QName(namespace,paramate[i]),XMLType.XSD_STRING, ParameterMode.IN);
}
}
call.setReturnType(XMLType.XSD_STRING);
if(null==args){
args = new Object[]{};
}
Object obj = call.invoke(args);
System.out.println(obj);
return obj.toString();
} catch (ServiceException e) {
e.printStackTrace();
return null;
} catch(RemoteException e) {
e.printStackTrace();
return null;
}
}
3、Maven的pom.xml中导入
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxrpc-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.2</version>
</dependency>
4、主要使用的jar包
activation.jar
axis.jar
commons-discovery.jar
jaxrpc.jar
wsdl4j-1.5.1.jar