您的位置:首页 > 编程语言 > Java开发

java调用WSDL接口(使用axis方式)

2017-04-19 16:41 519 查看
对接口进行性能测试,所以在网上找了下wsdl接口测试代码的编写,本以为挺简单的,结果网上的很多文章中的代码执行报错。自己整理了下,供大家学习使用。

使用axis方式,需要引用如下jar包:

\libs\axis.jar

\libs\jaxrpc.jar

\libs\commons-logging-1.1.3.jar

\libs\commons-discovery-0.2.jar

\libs\wsdl4j-1.6.2.jar

代码如下:

package wsdl;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class ICServiceTest {

public static void main(String[] args) {

try {
//测试地址——http://www.webservicex.net/globalweather.asmx?WSDL

String webServiceNameSpace="http://www.webserviceX.NET";
String endpoint = "http://www.webservicex.net/globalweather.asmx";

Service service = new Service();
Call call = (Call) service.createCall();

call.setSOAPActionURI(webServiceNameSpace +"/GetWeather");
call.setTargetEndpointAddress(endpoint);
// WSDL里面描述的接口名称(要调用的方法)
//call.setOperationName("GetCitiesByCountry");
call.setOperationName(new QName(webServiceNameSpace,"GetWeather"));
// 接口方法的参数名, 参数类型,参数模式  IN(输入), OUT(输出) or INOUT(输入输出)

call.addParameter(new QName(webServiceNameSpace,"CountryName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(webServiceNameSpace,"CityName"), XMLType.XSD_STRING, ParameterMode.IN);
// 设置被调用方法的返回值类型
call.setReturnType(XMLType.XSD_STRING);
//设置方法中参数的值
Object[] paramValues = new Object[] {"china","beijing"};
// 给方法传递参数,并且调用方法
String result = (String) call.invoke(paramValues);

System.out.println("result is " + result);
} catch (Exception e) {
e.printStackTrace();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java wsdl