1、引入maven包
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>${cxf.version}</version> </dependency>
2、创建Client对象
public static Client getDynamicClient(String wsdlUrl) { if (client == null) { synchronized (this.class) { if (client == null) { DynamicClientFactory dcf = DynamicClientFactory.newInstance(); client = dcf.createClient(wsdlUrl); } } } return client; }
3、请求远程方法
private String getResult(String reqXml, String wsdlUrl, String method) { String result = null; Object[] objects = null; try { LOGGER.debug("reqXml={}.", reqXml); objects = getDynamicClient(wsdlUrl).invoke(method, reqXml); result = (String) objects[0]; LOGGER.debug("GbotExecutor.getResult response={}.", result); } catch (Exception e) { LOGGER.error("invoke gbot getResult failed!", e); } return result; }