使用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发布的服务。