首页 > 代码库 > 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