public class WSClientUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(WSClientUtil.class);
/**
*
* @param interfaceUrl 接口地址
* @param namespace 命名空间
* @param interfaceMethod 方法名
* @param invokeParam 参数
* @return
*/
public static String invokeWS(String interfaceUrl, String namespace, String interfaceMethod, Object[] invokeParam){
Call call = null;
Service service = new Service();
String responseXml = ""; //调用接口后的返回
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(interfaceUrl));
call.setOperationName(new QName(namespace, interfaceMethod));
call.setEncodingStyle("");
call.addParameter("requestXml", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);//参数名称
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//返回类型
responseXml = (String) call.invoke(invokeParam);
}catch (Exception e) {
LOGGER.error("调用接口时发生异常,异常详情为:{}",e);
}
return responseXml;
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
String rootPath = WSClientUtil.class.getResource("/").getPath();
String pathname = rootPath + "test.xml";//本地的文件路径
File file = new File(pathname);
String requestXml = "";
try {
requestXml = FileUtils.readFileToString(file,"UTF-8");//将文件转换成字符串发送给接口
} catch (IOException e) {
LOGGER.error("读取文件发生异常,异常详情为:{}",e);
}
String interfaceUrl = "http://ip:端口/interface/services/Service?wsdl"; //要调用的接口地址
String interfaceMethod = "receiveData";//要调用的方法名
String namespace = "http://ws.interface.com/"; //要调用的命名空间
Object[] invokeParam = new Object[] { requestXml };
String responseXml = WSClientUtil.invokeWS(interfaceUrl, namespace, interfaceMethod, invokeParam);
System.out.println("调用接口响应报文为:" + responseXml);
}
}
axis2远程调用webservice
最新推荐文章于 2022-11-29 00:20:54 发布