首页 > 代码库 > java动态调用webservice
java动态调用webservice
cxf方式
public static Object[] invokeRemoteMethod(String url, String method, Object[] parameters) { JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); if (!url.endsWith("wsdl")) { url += "?wsdl"; } org.apache.cxf.endpoint.Client client = dcf.createClient(url); try { Object[] objects = client.invoke(method, parameters); return objects; } catch (Exception e) { e.printStackTrace(); } return null; }
maven引用
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.1.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-core --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-core</artifactId> <version>3.1.5</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>3.1.5</version> </dependency>
缺点是效率低,调用速度慢
Xfire方式调用
public static String getData(String wsUrl, String invoke, Object[] objParams) throws MalformedURLException, Exception { URL url = new URL(wsUrl); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.connect(); Client client = new Client(connection.getInputStream(), (Class)null); client.setProperty("disable-keep-alive", "true"); client.setProperty("disable.expect-continue", "true"); client.setUrl(wsUrl); Object[] result = client.invoke(invoke, objParams); String resultStr = result[0].toString(); return "".equals(resultStr)?"":resultStr; }
maven引用
<dependency> <groupId>org.codehaus.xfire</groupId> <artifactId>xfire-all</artifactId> <version>${xfire.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency>
缺点是jar包太旧了,很容易与其他包冲突
java动态调用webservice
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。