基于Axis2的WS构建客户端示例
呵呵,刚写了一篇基于Axis2的WS构建服务端示例,如下链接:
http://zhangzhenting.iteye.com/blog/625252
?
现在介绍构建客户端的方法:
还是根据WSDL生成客户端代码,前面已经通过一篇文章介绍了相关操作方法:http://zhangzhenting.iteye.com/blog/624364
?
首先,创建一个应用工程,将生成的客户端源码复制到工程中,也就一个类,不过这个类比较大而已。
然后,将相关的jar包放到工程中classpath中,这些jar包都可以在axis2安装目录lib下找到,主要有以下几个包:
????? activation-1.1.jar
????? axiom-api-1.2.4.jar
????? axiom-impl-1.2.4.jar
????? axis2-adb-1.2.jar
????? axis2-adb-codegen-1.2.jar
????? axis2-codegen-1.2.jar
????? axis2-java2wsdl-1.2.jar
????? axis2-kernel-1.2.jar
????? commons-codec-1.3.jar
????? commons-httpclient-3.0.1.jar
????? commons-logging-1.1.jar
????? stax-api-1.0.1.jar
????? wsdl4j-1.6.2.jar
????? wstx-asl-3.2.1.jar
????? XmlSchema-1.3.1.jar
这样环境就建立了,最后就是要进行测试了。
写一个测试类,如下:
public class UserServiceTest {public static void main(String[] args) throws RemoteException {long start = System.currentTimeMillis();UserServiceStub synUserImplServiceStub = new UserServiceStub("http://localhost:8080/zzt/services/UserService");login(synUserImplServiceStub);System.out.println("cost:" + (System.currentTimeMillis() - start));}private static void login(UserServiceStub userServiceStub) throws RemoteException {LoginRequest3 loginRequest3 = new LoginRequest3();LoginRequest loginRequest = new LoginRequest();loginRequest.setUsername("zzt");loginRequest.setPassword("123");loginRequest3.setLoginRequest(loginRequest);try {LoginResponse6 loginResponse6 = userServiceStub.login(loginRequest3);String resultCode = loginResponse6.getLoginResponse().getResultCode();String description = loginResponse6.getLoginResponse().getDescription();System.out.println("resultCode=" + resultCode + ",description=" + description);} catch (AxisFault e) {e.printStackTrace();}}}
?
运行该应用程序,在服务端能够接收到响应就表示成功了。
另外,对add,delete 和 edit 方法的测试在附件中给出,所需的jar包都可以在axis2安装目录lib下找到,就不在列出了。
?
?