1.wsimport生成代理工具类方式
(1)、开发步骤
A、在工作空间创建用于存放使用wsimport命令生成的客户端代码的java工程
● wsimport命令是jdk提供的,作用是根据使用说明书生成客户端代码,wsimport只支持SOAP1.1客户端的生成
-d:默认参数,用于生成.class文件
-s:生成.java文件
-p:指定生成java文件的包名,不指定则为WSDL说明书中namespace值得倒写
C、在doc窗口进入java工程项目的src目录,执行wsimport命令
切换到JDK的BIN目录 wsimport -s . webservide地址?wsdl
.代表当前目录,可以设定具体生成目录
D、在Eclipse中刷新java项目,将生成的客户端代码copy到客户端工程中
try { URL url = new URL(address); JhipServices wsis = new JhipServices(url); JhipServicesSoap wsi = wsis.getJhipServicesSoap(); String strUserInfo = wsi.getUserDetailInfo(param); return strUserInfo; } catch (Exception e) { logger.error("getWebData出错:" + e.getStackTrace()); }
2.JaxWsDynamicClientFactory创建动态客户端方式
<!-- CXF webservice --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.3.4</version> </dependency>
// 创建动态客户端 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient(address); // 需要密码的情况需要加上用户名和密码 // client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME, PASS_WORD)); Object[] objects = new Object[0]; try { // invoke("方法名",参数1,参数2,参数3....); objects = client.invoke(method, param); return objects[0]; } catch (Exception e) { e.printStackTrace(); } return null;