webservice接口采用的协议是soap协议,和我们常用的http协议不同。故不能用调用http的形式调用webservice接口
soap协议:是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议
http协议:http是标准超文本传输协议
如何调用webservice接口(我比较常用的),当然,这只是其中之一。其他的自行百度吧
需要两个jar包:
api("org.apache.cxf:cxf-rt-frontend-jaxws:3.4.1")
api(‘org.apache.cxf:cxf-rt-transports-http:3.4.1‘)
然后需要一个调用的客户端,如下:
/**
* @author xiaoxin
*/
@Slf4j
public class WebServiceUtils {
/**
* @param url 请求路径
* @param message 报文
* @param method 需要调用的方法名字
* @return
*/
public static String sendWsdl(String url, String message, String method) {
//创建JaxWsDynamicClientFactory作为调用客户端;
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
try {
//客户端调用wsdl地址
Client client = dcf.createClient(url);
Object[] objects = client.invoke(method, new Object[]{message});
return String.valueOf(objects[0]);
} catch (Exception e) {
log.error("调用webservice接口Exception{}", e);
BusinessException.throwBusinessException(e.getMessage());
}
return null;
}
}
原文:https://www.cnblogs.com/xiaoxin-IT/p/14086892.html