用axis解析webservice並呼叫
阿新 • • 發佈:2019-02-19
使用axis1.4呼叫webservice有兩種簡單的方式:
1、直接使用axis提供的API呼叫,適用於webservice介面的引數和返回值都是String的情況。
Java程式碼- 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介面的引數或返回值中包含自定義類的情況。
Java程式碼- 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的包見附件。