webservice的 发布一般都是使用WSDL(web servicedescriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。
直接AXIS调用远程的web service
废话不多说还是直接粘代码比较靠谱。
pom.xml中添加jar包
<dependency>
<groupId>org.eclipse.birt.runtime.3_7_1</groupId>
<artifactId>javax.wsdl</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
main方法
public static void main(String[] args) {
try {
String endpoint = "http://libjk.jsu.edu.cn/glisservicereader/ws/GlisCXReader?wsdl";
// 直接引用远程的wsdl文件
Service service = (Service) new org.apache.axis.client.Service();
Call call = (Call) ((org.apache.axis.client.Service) service).createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("enableReader");// WSDL里面描述的接口名称
call.addParameter("barcode ", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.addParameter("libcode ", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("signcode ", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
String result = (String) call
.invoke(new Object[] { "CXT0001", "2910402243", "235d140b7b477dc81b5b8e11795e49db" });
// 给方法传递参数,并且调用方法
System.out.println("result is " + result);
} catch (Exception e) {
System.err.println(e.toString());
}
}