Myeclipse調用webservice總結【利用WSDL】

      最近學習MyEclipse、workshop方面的知識,重點是關於webservice方面的。

      經過大概2周的學習、實踐,有點小收穫。

 

一、MyEclipse利用網上公開發布WSDL文件,創建WebService Client,進行調用WebService;

 

      網上找的WSDL測試例子wdlurl:http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

 

    1.  打開MyEclipse,新建一個Web Project;然後新建 一個package,取名爲com.test;

    2.  然後再New一個Web Service Client;

         點next ,然後錄入 WSDL URL: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

         點next,點finish;ok了,系統會自動幫忙生成很多代碼。

    3. 打開qqOnlineWebServiceClient.java;

        在main函數裏 加入 String str = qqOnlineWebServiceSoap.qqCheckOnline("854915761");   加好代碼後形式如下:

 

static void main(String[] args) {

  qqOnlineWebServiceClient client = new qqOnlineWebServiceClient();

  //create a default service endpoint
  com.test.qqOnlineWebServiceSoap qqOnlineWebServiceSoap = client
    .getqqOnlineWebServiceSoap();

  //TODO: Add custom client code here
  //
  //qqOnlineWebServiceSoap.yourServiceOperationHere();
  String str = qqOnlineWebServiceSoap.qqCheckOnline("854915761");
  System.out.println("test client completed:"+str);
  System.exit(0);
 } 

 

 

4.然後右擊qqOnlineWebServiceClient.java,  run as application,

  會報錯:【報錯不可怕,我們可以根據錯誤原因,解決之,下面錯誤的原因就是少commons-httpclient-3.1-rc1.jar這麼一個玩意,一般安裝後MyEclipse後是沒有這個東東的,需要下載一下,網上有】

  Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/methods/RequestEntity
 at java.lang.Class.getDeclaredConstructors0(Native Method)
 at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
 at java.lang.Class.getConstructor0(Unknown Source)
 at java.lang.Class.getConstructor(Unknown Source)
 at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:108)
 at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
 at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
 at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
 at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:75)
 at org.codehaus.xfire.client.Client.invoke(Client.java:335)
 at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
 at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
 at $Proxy8.qqCheckOnline(Unknown Source)
 at com.test.qqOnlineWebServiceClient.main(qqOnlineWebServiceClient.java:126)

 

5.將下載到的commons-httpclient-3.1-rc1.jar放到MyEclipse安裝目錄下的MyEclipse/eclipse/plugins裏【我是放到這裏了,應該也可以放到其他地方,只要在classpath路徑裏應該就行】,然後右擊工程選擇build path-->configure build path;然後在打開的窗口裏選擇libraries選項卡,點Add External JARs,然後選擇剛纔放到plugins裏的commons-httpclient-3.1-rc1.jar。只要加進來就可以了。

 

6.再run as一把,ok了。

輸出:

    test client completed:N

 

 

 

二、work shop創建webservice總結

    

    oracle出的一個集成快速便捷的開發環境,我理解的是,bea的weblogic 和其他產品 + MyEclipse + Oracle自己開發的一些組件等整合到一起,可視化程度很高。

 

    查看workshop的help,根據上面的web service的例子【做了一個getCustomer的例子,每一步都有截圖,挺清楚的】,一步一步實踐;

    注意:數據源在代碼裏有簡單的指定,如jdniname = samplesdatasource;webservice發佈之前需要在weblogic中配置 這個數據源,我使用的是mysql,配置完以後可以Test 一下,然後add到運行的那個server中。

   然後代碼中該建的表也需要先建一下。

   workshop啓動server很慢,也很耗內存,建議可以在另外的機器上啓動server,在本機開發測試。這樣應該比較好。

  

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章