Axis2快速上手指南4

使用ADB生成一个客户端
执行以下步骤来使用Axis Data Binding(ADB)构建一个客户端。
通过在Axis2_HOME/samples/quickstartadb目录键入以下命令来生成客户端数据绑定:
%AXIS2_HOME%/bin/WSDL2Java -uri resources/META-INF/StockQuoteService.wsdl -p samples.quickstart.clients -d adb -s
-o build/client

或者在Axis2_HOME/samples/quickstartadb目录简单的键入 ant generate.client
下一步看看quickstartadb/src/samples/quickstart/clients/ADBClient.java,并看看它在Code Listing 10中是怎样定义的。
Code Listing 10:ADBClient类
Java代码 复制代码
  1. package samples.quickstart.clients;  
  2.   
  3. import samples.quickstart.service.adb.StockQuoteServiceStub;  
  4.   
  5. public class ADBClient{  
  6.     public static void main(java.lang.String args[]){  
  7.         try{  
  8.              StockQuoteServiceStub stub =  
  9.                 new StockQuoteServiceStub  
  10.                  ("http://localhost:8080/axis2/services/StockQuoteService");  
  11.   
  12.              getPrice(stub);  
  13.              update(stub);  
  14.   
  15.          } catch(Exception e){  
  16.              e.printStackTrace();  
  17.              System.err.println("\n\n\n");  
  18.          }  
  19.      }  
  20.   
  21.     /* fire and forget */  
  22.     public static void update(StockQuoteServiceStub stub){  
  23.         try{  
  24.              StockQuoteServiceStub.Update req = new StockQuoteServiceStub.Update();  
  25.              req.setSymbol ("ABC");  
  26.              req.setPrice (42.35);  
  27.   
  28.              stub.update(req);  
  29.              System.err.println("done");  
  30.          } catch(Exception e){  
  31.              e.printStackTrace();  
  32.              System.err.println("\n\n\n");  
  33.          }  
  34.      }  
  35.   
  36.     /* two way call/receive */  
  37.     public static void getPrice(StockQuoteServiceStub stub){  
  38.         try{  
  39.              StockQuoteServiceStub.GetPrice req = new StockQuoteServiceStub.GetPrice();  
  40.   
  41.              req.setSymbol("ABC");  
  42.   
  43.              StockQuoteServiceStub.GetPriceResponse res =  
  44.                  stub.getPrice(req);  
  45.   
  46.              System.err.println(res.get_return());  
  47.          } catch(Exception e){  
  48.              e.printStackTrace();  
  49.              System.err.println("\n\n\n");  
  50.          }  
  51.      }  
  52.   
  53. }  
package samples.quickstart.clients;  import samples.quickstart.service.adb.StockQuoteServiceStub;  public class ADBClient{     public static void main(java.lang.String args[]){         try{             StockQuoteServiceStub stub =                 new StockQuoteServiceStub                 ("http://localhost:8080/axis2/services/StockQuoteService");              getPrice(stub);             update(stub);          } catch(Exception e){             e.printStackTrace();             System.err.println("\n\n\n");         }     }      /* fire and forget */     public static void update(StockQuoteServiceStub stub){         try{             StockQuoteServiceStub.Update req = new StockQuoteServiceStub.Update();             req.setSymbol ("ABC");             req.setPrice (42.35);              stub.update(req);             System.err.println("done");         } catch(Exception e){             e.printStackTrace();             System.err.println("\n\n\n");         }     }      /* two way call/receive */     public static void getPrice(StockQuoteServiceStub stub){         try{             StockQuoteServiceStub.GetPrice req = new StockQuoteServiceStub.GetPrice();              req.setSymbol("ABC");              StockQuoteServiceStub.GetPriceResponse res =                 stub.getPrice(req);              System.err.println(res.get_return());         } catch(Exception e){             e.printStackTrace();             System.err.println("\n\n\n");         }     }  }

该类使用你创建的Axis Data Bindings创建一个客户端存根。然后它在Web服务上调用getPrice和update操作。getPrice方法操作创建
GetPrice有效载荷并设置symbol为ABC。然后它发送请求并显示当前价格。update方法创建一个Update有效载荷,设置symbol为ABC及
price为42.35。
现在通过在Axis2_HOME/samples/quickstartadb目录键入 ant run.client来构建并运行客户端。
你应该得到以下输出:
Java代码 复制代码
  1. 42  
  2. done  
42 done


使用XMLBeans生成一个客户端
执行以下步骤来使用XMLBeans数据绑定来构建一个客户端。
通过在xmlbeansClient目录键入以下命令来生成数据绑定:
%AXIS2_HOME%/bin/WSDL2Java -uri resources/META-INF/StockQuoteService.wsdl -p samples.quickstart.service.xmlbeans -d
xmlbeans -s -o build/client

或者简单的在Axis2_HOME/samples/quickstartxmlbeans目录下键入 ant generate.client
注意这只会创建客户端存根代码而不会创建服务器端代码。
下一步看看quickstartxmlbeans/src/samples/quickstart/clients/XMLBEANSClient.java,并在Code Listing 11看看它怎样定义的
Code Listing 11:XMLBEANSClient类
Java代码 复制代码
  1. package samples.quickstart.clients;  
  2.   
  3. import samples.quickstart.service.xmlbeans.StockQuoteServiceStub;  
  4. import samples.quickstart.service.xmlbeans.xsd.GetPriceDocument;  
  5. import samples.quickstart.service.xmlbeans.xsd.GetPriceResponseDocument;  
  6. import samples.quickstart.service.xmlbeans.xsd.UpdateDocument;  
  7.   
  8. public class XMLBEANSClient{  
  9.   
  10.     public static void main(java.lang.String args[]){  
  11.         try{  
  12.              StockQuoteServiceStub stub =  
  13.                 new StockQuoteServiceStub  
  14.                  ("http://localhost:8080/axis2/services/StockQuoteService");  
  15.   
  16.              getPrice(stub);  
  17.              update(stub);  
  18.   
  19.          } catch(Exception e){  
  20.              e.printStackTrace();  
  21.              System.err.println("\n\n\n");  
  22.          }  
  23.      }  
  24.   
  25.     /* fire and forget */  
  26.     public static void update(StockQuoteServiceStub stub){  
  27.         try{  
  28.              UpdateDocument reqDoc = UpdateDocument.Factory.newInstance();  
  29.              UpdateDocument.Update req = reqDoc.addNewUpdate();  
  30.              req.setSymbol ("ABC");  
  31.              req.setPrice (42.32);  
  32.   
  33.              stub.update(reqDoc);  
  34.              System.err.println("done");  
  35.          } catch(Exception e){  
  36.              e.printStackTrace();  
  37.              System.err.println("\n\n\n");  
  38.          }  
  39.      }  
  40.   
  41.     /* two way call/receive */  
  42.     public static void getPrice(StockQuoteServiceStub stub){  
  43.         try{  
  44.              GetPriceDocument reqDoc = GetPriceDocument.Factory.newInstance();  
  45.              GetPriceDocument.GetPrice req = reqDoc.addNewGetPrice();  
  46.              req.setSymbol("ABC");  
  47.   
  48.              GetPriceResponseDocument res =  
  49.                  stub.getPrice(reqDoc);  
  50.   
  51.              System.err.println(res.getGetPriceResponse().getReturn());  
  52.          } catch(Exception e){  
  53.              e.printStackTrace();  
  54.              System.err.println("\n\n\n");  
  55.          }  
  56.      }  
  57. }  
package samples.quickstart.clients;  import samples.quickstart.service.xmlbeans.StockQuoteServiceStub; import samples.quickstart.service.xmlbeans.xsd.GetPriceDocument; import samples.quickstart.service.xmlbeans.xsd.GetPriceResponseDocument; import samples.quickstart.service.xmlbeans.xsd.UpdateDocument;  public class XMLBEANSClient{      public static void main(java.lang.String args[]){         try{             StockQuoteServiceStub stub =                 new StockQuoteServiceStub                 ("http://localhost:8080/axis2/services/StockQuoteService");              getPrice(stub);             update(stub);          } catch(Exception e){             e.printStackTrace();             System.err.println("\n\n\n");         }     }      /* fire and forget */     public static void update(StockQuoteServiceStub stub){         try{             UpdateDocument reqDoc = UpdateDocument.Factory.newInstance();             UpdateDocument.Update req = reqDoc.addNewUpdate();             req.setSymbol ("ABC");             req.setPrice (42.32);              stub.update(reqDoc);             System.err.println("done");         } catch(Exception e){             e.printStackTrace();             System.err.println("\n\n\n");         }     }      /* two way call/receive */     public static void getPrice(StockQuoteServiceStub stub){         try{            ...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值