在这里我们还是以axis2-1.6.2 HelloWorld例子来说明,工程目录结构如下:
1.第一种方式在axis2-1.6.2 HelloWorld中已经说明,在此不再赘述。
2.第二种方式是使用axis2自带的wsdl2java.bat 生成客户端代码
a)为了维护方便,我可以在src目录下写一个批处理文件WSDL2Java.bat,内容如下:
wsdl2java -uri http://localhost:8089/Axis2Demo02/services/helloServer?wsdl -p client 指定生成java文件的包名 -o D:\eclipse4.4\workspace\Axis2Demo02 指定在Axxis2Demo目录下生成,如果没有会自动生成 pause;
其中-uri参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。
b)双击该批处理文件
执行完该批处理文件后,读者就会发现在src目录下多了个client目录,可以找到2个java文件,分别为HelloServerStub.java和HelloServerCallbackHandler.java文件,其中HelloServerStub.java是客户端程序,HelloServerCallbackHandler.java是异步客户端程序。该文件复杂调用WebService,读者可以在程序中直接使用这个类。
c)调用执行
package client; import java.rmi.RemoteException; import org.apache.axis2.AxisFault; public class RPCClient { public static void main(String[] args) { HelloServerStub stub = null; try { stub = new HelloServerStub(); HelloServerStub.SayHello sh = new HelloServerStub.SayHello(); sh.setName("boredStudent"); System.out.println(stub.sayHello(sh).get_return()); } catch (AxisFault e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } }