WebService深入学习之四:使用生成存根的方式访问WebService

这篇文章和那个读取天气预报的类似.

首先你需要根据WebService的描述,即WSDL语言生成本地的访问文件(java文件)。你需要用的axis中的org.apache.axis.wsdl.WSDL2Java,关于这个的使用网上有很多教程,这里我就最简单的描述一下使用方式,编写一个bat文件:

set AXIS_HOME=C:\Program Files\Java\axis-1_4
set CLASSPATH=.;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar

java org.apache.axis.wsdl.WSDL2Java  -p com.test http://localhost:8088/axis/HelloWorld.jws?wsdl

关于参数-p:打包的意思,后面就是包名。其实后面的那个url地址换成磁盘上的wsdl文件也是可以的。

然后会在你的bat文件所在文件夹下生成一个com文件夹,里面按照src方式存有源码,你需要把com文件拷到新建工程的src下。

然后在写一个MyClient类来通过存根读取webservice上面的内容:

package client;

import java.rmi.RemoteException;
import com.test.HelloWorldService;
import com.test.HelloWorldServiceLocator;
import com.test.HelloWorld_PortType;
import javax.xml.rpc.ServiceException;

public class MyClient {

	public static void main(String[] args) {

		HelloWorldService hs = new HelloWorldServiceLocator();
		HelloWorld_PortType hcpt;
		try {
			hcpt = hs.getHelloWorld();
			System.out.println(hcpt.sayHello("胡阳"));
		} catch (ServiceException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券