java调用webservice WSDL形式接口之apache axis方式调用(一)
2018-01-31 17:59
573 查看
1. 先说一下什么是webservice
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。
(2)WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。
2. 下面是介绍如何使用axis调用webservice
(1)先从官网下载axis相关jar包,地址:http://axis.apache.org/axis/
官方要求引入如下jar包(将lib下的jar引入即可)
axis-<version>/lib/axis.jar
axis-<version>/lib/jaxrpc.jar
axis-<version>/lib/saaj.jar
axis-<version>/lib/commons-logging-<version>.jar
axis-<version>/lib/commons-discovery-<version>.jar
axis-<version>/lib/wsdl4j-<version>.jar
我在项目中实际用到的最少jar如下:
H:\libs\axis.jar
H:\libs\jaxrpc.jar
H:\libs\commons-logging-1.0.4.jar
H:\libs\commons-discovery-0.2.jar
H:\libs\wsdl4j-1.5.1.jar
(2)具体代码实现
[java] view
plain copy
package ic;
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 ICServiceTest1 {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:3000/hy/gw/queryConsignOrder?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
// WSDL里面描述的接口名称(要调用的方法)
call.setOperationName("getLisQueryConsignOrder");
// 接口方法的参数名, 参数类型,参数模式 IN(输入), OUT(输出) or INOUT(输入输出)
call.addParameter("icSystem", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("companyFlag", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("consignOrderNo", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("orderNo", XMLType.XSD_STRING, ParameterMode.IN);
// 设置被调用方法的返回值类型
call.setReturnType(XMLType.XSD_STRING);
//设置方法中参数的值
Object[] paramValues = new Object[] {"4PL","NJHY,NJHF","TC201309172206",""};
// 给方法传递参数,并且调用方法
String result = (String) call.invoke(paramValues);
System.out.println("result is " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。
(2)WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。
2. 下面是介绍如何使用axis调用webservice
(1)先从官网下载axis相关jar包,地址:http://axis.apache.org/axis/
官方要求引入如下jar包(将lib下的jar引入即可)
axis-<version>/lib/axis.jar
axis-<version>/lib/jaxrpc.jar
axis-<version>/lib/saaj.jar
axis-<version>/lib/commons-logging-<version>.jar
axis-<version>/lib/commons-discovery-<version>.jar
axis-<version>/lib/wsdl4j-<version>.jar
我在项目中实际用到的最少jar如下:
H:\libs\axis.jar
H:\libs\jaxrpc.jar
H:\libs\commons-logging-1.0.4.jar
H:\libs\commons-discovery-0.2.jar
H:\libs\wsdl4j-1.5.1.jar
(2)具体代码实现
[java] view
plain copy
package ic;
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 ICServiceTest1 {
public static void main(String[] args) {
try {
String endpoint = "http://localhost:3000/hy/gw/queryConsignOrder?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
// WSDL里面描述的接口名称(要调用的方法)
call.setOperationName("getLisQueryConsignOrder");
// 接口方法的参数名, 参数类型,参数模式 IN(输入), OUT(输出) or INOUT(输入输出)
call.addParameter("icSystem", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("companyFlag", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("consignOrderNo", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("orderNo", XMLType.XSD_STRING, ParameterMode.IN);
// 设置被调用方法的返回值类型
call.setReturnType(XMLType.XSD_STRING);
//设置方法中参数的值
Object[] paramValues = new Object[] {"4PL","NJHY,NJHF","TC201309172206",""};
// 给方法传递参数,并且调用方法
String result = (String) call.invoke(paramValues);
System.out.println("result is " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关文章推荐
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- java调用webservice WSDL形式接口之apache axis方式调用(一)
- java调用WSDL接口(使用axis方式)
- java用axis方式调用webservice接口
- java(jeecg框架) 调用CXF WebService接口的两种方式
- java WSDL接口webService实现方式
- java 调用 wsdl形式的webservice 示例
- java:浅谈axis调用webservice接口
- 采用axis框架,进行webservice接口开发、调用时,http://127.0.0.1:8080/TestService/services/TestService?wsdl即wsdl的xml文件
- java 调用 wsdl形式的webservice
- Java调用C#WebService接口方式
- axis方式调用wsdl中的接口方法
- Java调用C#WebService接口方式
- java 调用 wsdl形式的webservice 示例
- Java调用WebService接口 wsdl/asmx
- java 调用 wsdl形式的webservice 示例
- java 调用webservice接口(wsdl)
- java 调用webservice采用axis方式时候无法找到参数注意事项
- 采用axis框架,进行webservice接口开发、调用时,http://127.0.0.1:8080/TestService/services/TestService?wsdl是什么