使用axis1.4调用webservice有两种简单的方式:
1、直接使用axis提供的API调用,适用于webservice接口的参数和返回值都是String的情况。
try { Call call = (Call)new Service().createCall(); call.setTargetEndpointAddress("http://192.168.1.234:8080/TestAxis"); Object obj = call.invoke("auth", new String[]{"username","password"}); System.out.println(obj); } catch (Exception e) { e.printStackTrace(); }
?2、使用axis提供的工具类org.apache.axis.wsdl.WSDL2Java先生成客户端stub,然后像使用本地方法一样调用远程接口。可以按如下方式使用WSDL2Java类,WSDL2Java后面可以是url,也可是是wsdl文件。
? ??java -Djava.ext.dirs=e:/axis/lib org.apache.axis.wsdl.WSDL2Java http://192.168.1.234:8080/TestAxis.wsdl
这样在执行java的当前路径下就会生成TestAxis接口的客户端stub类。然后使用如下方式调用webservice,这种方式适合webservice接口的参数或返回值中包含自定义类的情况。
?
try { URL url = new URL("http://192.168.1.234:8080/TestAxis"); TestAxisSoapBindingStub stub = new TestAxisSoapBindingStub(url,new Service()); Account acct = new Account(); acct.setName("username"); acct.setPassword("password"); boolean result = stub.checkAccount(acct); System.out.println(result); } catch (Exception e) { e.printStackTrace(); }?
经过测试axis1.4既可以调用axis发布的服务,也可以调用CXF发布的服务。
?
axis1.4的包见附件。
?