posts - 1,  comments - 25,  trackbacks - 0

          非常感謝呼必斯哈拉圖,寫得非常的詳細,圖文并茂。
          但是,我的環境和他文中的不太一樣,所以根據自己的環境重寫如下。

          一、環境準備

          1.1軟件下載準備
          Tomcat 5.5下載地址:
          http://tomcat.apache.org/download-55.cgi#5.5.20

          Axis War包:
          http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war

          Axis Eclipse plug-in(代碼生成工具和打包工具):
          http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-codegen-wizard.zip
          http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-service-archiver-wizard.zip

          Eclipse 3.2:
          http://www.eclipse.org/

          MyEclipse5.5M1
          http://www.myeclipseide.com/

          1.2安裝

          A.首先搭建開發環境,將下載的Eclipse解壓縮到一個目錄,D:eclipse-SDK-3.2-win32。
          B.將下載到的Axis 的兩個plug-in解壓縮到D:Axis-Plugin-Direclipseplugins目錄下

          C.在eclipse目錄下創建D:eclipse-SDK-3.2-win32eclipselinks,新建文件名為:axis-eclipse-plugin.link

          內容為:
          path=D:Axis-Plugin-Dir


          D.安裝MyEclipse5.5M1,將eclipse目錄指向D:eclipse-SDK-3.2-win32,刪除D:eclipse-SDK-3.2-win32eclipseconfiguration下的org.eclipse.update目錄。然后啟動MyEclipse,選擇“File->New->Other”可以看到如下的兩個界面。
          1、Axis2 plugins


          2、Web Servieces plugins

          E.下面開始搭建Web Services的部署環境。

          將下載的tomcat5.5解壓縮到一個目錄D:Tomcat5.5。

          F.將axis2.war包拷貝到tomcat安裝目錄下的webapps目錄。

          G.啟動Tomcat(D:Tomcat5.5binstartup.bat),打開瀏覽器輸入并訪問:http://127.0.0.1:8080/axis2 來查看,結果如下圖,表示axis2已經工作正常。

          二、快速開始

          2.1創建webApps項目

          啟動MyEclipse,新建立一個WebAppsFile->New->Project->Web Project,Project Name SayHello
          ,其他保持不改變。

          2.2創建WSDL文件

          A.選擇File->New-Other菜單,進入后找到MyEclipse->Web Services并選擇WSDL.如下圖:

          B.點擊下一步按鈕,顯示如下圖:

          C.選擇“src”目錄作為“Enter or select the parent folder”的值,“File name”值給定為SayHello.wsdl。

          D.下一步》所有界面內容取默認值,Finish!

          E.顯示WSDL設計器的界面如下:

          F.修改圖中標紅色的部分:
          修改圖中的NewOperation為SayHello;
          修改input中parameters為SayHelloRequest;
          修改output中parameters為SayHelloResponse;
          修改完后如下圖:

          紅色框內為變化的內容,WSDL文件修改完畢。

          2.3WSDL生成Java代碼

          A.選擇菜單“File->New->Other”,從對話框中選取“Axis2 Wizards”下面的“Axis2 Code Generator”.點擊“Next”

          B.進入下一個頁面,保持“Generate java source code from WSDL file”被選中,點擊“Next”進入下一步。
          C.點擊“Browse”來選取存放在src目錄下的SayHello.wsdl文件,“Next”
          進入下一步。
          D.首先生成客戶端代碼和測試代碼,設置如下:

          E.下一步后,選擇SayHellosrc目錄,如下圖:

          Finish !

          F.重復從A到C的步驟,然后生成服務端代碼,設置如下:


          后面同E。

          G.結束后,刷新項目,如圖:

          這是由于沒有將Axis2jar包放入class path 中以及源代碼的package不為org.example.www.sayhello引起的。

          H.修改包名為org.example.www.sayhello并從tomcat中的axis2 web應用WEB-INF/lib目錄中加載所有jar包到項目的classpath中。

          I.在SayHelloTest.java 中引入junit包。

          2.4編寫業務代碼

          打開SayHelloSKeleton.java文件其中的方法如下:

           

          public org.tonyzhangcn.ws.sayhello.SayHelloResponse SayHello(org.tonyzhangcn.ws.sayhello.SayHelloRequest param0)

          {

          // Todo fill this with the necessary business logic

          throw new java.lang.UnsupportedOperationException();

          }

           

           修改為:

           

          public org.tonyzhangcn.ws.sayhello.SayHelloResponse SayHello(org.tonyzhangcn.ws.sayhello.SayHelloRequest request)
          {
                try
              {
                       SayHelloResponse response = new SayHelloResponse();
                       response.setOut("Hi,"+request.getIn()+".How are you?");
                       return response;
              }catch(UnsupportedOperationException e)
                 {
                     throw e;
             }
          }

           

          2.5打包

          A.選擇菜單“File->New->Other”,從對話框中選取“Axis2 Wizards”下面的“Axis2 Services Archive”.點擊“Next”進入下一個頁面

          B.選擇編譯好的class文件所在目錄(本項目應該是WebRoot下面WEB-INF/classes),“Next”進入下一步。

          C.選擇WSDL文件所在目錄,此處為src目錄下的SayHello.wsdl文件。“Next”,再“Next”。選擇services.xm文件。

          D.點擊“Next”,將記入最后一個頁面,此處有兩個選項,一個是輸出目錄一個是處處文件名稱。這里的輸出文件名稱給的是SayHello。點擊“Finish”完成。

          2.6部署

          A.將打包好的文件SayHello.jar拷貝到Tomcat中已經部署的Axis2應用的WEB-INF/services目錄下面。

          B.重新啟動Tomcat。

          C.打開瀏覽器,輸入http://127.0.0.1:8080/axis2,并點擊其中的“services”鏈接可以看到SayHello已經被部署。點擊SayHello提供的連接可以看到與之對應的WSDL。

          2.7調用測試
          A.修改SayHelloTest.java文件中的方法
          testSayHello的內容為:

           

          public void testSayHello() throws java.lang.Exception {
            String url="http://localhost:8080/axis2/services/SayHello";
            org.example.www.sayhello.SayHelloStub stub = new org.example.www.sayhello.SayHelloStub(url);
            org.example.www.sayhello.SayHelloStub.SayHello request = (org.example.www.sayhello.SayHelloStub.SayHello) getTestObject(org.example.www.sayhello.SayHelloStub.SayHello.class);
            request.setIn("Teamlet");
            System.out.println(stub.SayHello(request).getOut());
            assertNotNull(stub.SayHello(request));
           }

           

            從菜單中選擇“Run>Run as->JUnit Test 完成測試!

          <EOF>


          posted on 2008-03-10 23:02 Daniel 閱讀(23843) 評論(14)  編輯  收藏 所屬分類: WebService

          FeedBack:
          # re: MyEclipse + AXIS2
          2008-10-29 22:10 | yoan
          在使用Axis2 Codegen Wizard的時候報錯:

          An error occurred while completing process
          -java.lang.reflect.InvocationTargetException

          ...  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2009-03-20 16:41 | 初學者
          請問我按照您的步驟做到打包時點finish時報錯說是filesets
          怎么處理啊?是哪里錯了呢QQ114435179  回復  更多評論
            
          # re: MyEclipse + AXIS2 [未登錄]
          2009-04-18 16:40 |
          請問我用的是MyEclipse +tomcat6.5 那兩個plugin文件怎么找不到路徑Axis-Plugin-Direclipseplugins目錄???謝謝……
            回復  更多評論
            
          # re: MyEclipse + AXIS2
          2009-04-21 10:02 | pkrosaline
          你好。2.5D步驟,一個是Service name,這個是隨便自己寫的,對嗎?另一個是Class name,這個名字寫什么呢?我是隨便寫的。但是最后finish按鈕無效。根本無法點擊。  回復  更多評論
            
          # re: java.lang.reflect.InvocationTargetException
          2009-10-23 17:53 | lihw
          Axis2 Eclipse plugin: Code Generator 在Finish 時產生Exception: java.lang.reflect.InvocationTargetException
          [版本]
          Eclipse 3.2
          Axis2 1.4

          [問題原因]
          主要的問題在于 Code Generator plugin 內缺少了 backport-util-concurrent-3.1.jar 包

          [解決方案]
          - 關閉 Eclipse
          - copy %AXIS2_HOME%\lib\backport-util-concurrent-3.1.jar 到下列 folder
          %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\lib

          - 注冊此 jar 包: 編輯 %ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml , 在 <runtime> 內加入下面的字串
          <library name="lib/backport-util-concurrent-3.1.jar">
          <export name="*"/>
          </library>

          - 執行 Eclipse 即可

          - 若問題仍存在, 嘗試改變Eclipse 使用的 JRE, 換成 JAVA 6
          - 使用 JRE 1.6 啟動 Eclipse 后, 若仍有問題, 試著加入 -clean 參數啟動 Eclipse, 清除 osig cache:
          eclipse.exe -vm "c:\java\jre1.6.0_05\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M

          - 關閉 Eclipse 后, 再以一般方式啟動 Eclipse, 應可解決問題

            回復  更多評論
            
          # re: MyEclipse + AXIS2 [未登錄]
          2010-01-07 21:26 | xxx
          非常好~~謝謝你?。?!  回復  更多評論
            
          # re: MyEclipse + AXIS2 [未登錄]
          2010-03-25 20:55 | kk
          根據您的方法一步一步的做但是有點不對頭和您的有些不同,
          在2.4編寫業務代碼

          打開SayHelloSKeleton.java文件
          .sayhello.SayHelloRequest param0 處不同,

          自己生成的文里沒有SayHelloRequest,敲點后也沒找不到,

          您的那個SayHelloRequest 是怎么得到的,請指點迷津!  回復  更多評論
            
          # re: MyEclipse + AXIS2 [未登錄]
          2010-04-10 22:02 | guyue
          MyEclipse + Axis2 報錯 "filesets”
          這個問題的原因,就是你使用了Axis_Service_Archiver_1.0.0這個打包工具來打包,改用Axis2_Service_Archiver_1.3.0來打包

          Axis2_Service_Archiver_1.3.0 下載 http://taomujian.javaeye.com/blog/334405
            回復  更多評論
            
          # re: MyEclipse + AXIS2
          2010-06-27 09:44 | yvee
          @kk
          這個問題我知道,跟我的一樣,是因為你在做2.1步驟中的F.修改圖中標紅色的部分:
          修改圖中的NewOperation為SayHello;
          修改input中parameters為SayHelloRequest;
          修改output中parameters為SayHelloResponse;
          input參數沒有改,這個沒有關系 的,只要自己知道SayHello類就是SayHelloRequest請求就行了。  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2010-06-27 09:45 | yvee
          你好。2.5D步驟,一個是Service name,這個是隨便自己寫的,對嗎?另一個是Class name,這個名字寫什么呢?我是隨便寫的。但是最后finish按鈕無效。根本無法點擊。期待解決  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2011-03-03 11:43 | hslh22
          無法新建Axis代碼生成器,
          這個是我的郵件地址:hslh22@163.com  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2012-10-14 21:23 | 文海
          @yoan
          我也出現同樣的錯誤了,按照這個操作成功了。
          http://www.myexception.cn/ruby-rails/443126.html  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2013-03-11 18:06 | zmaike
          從tomcat中的axis2 web應用WEB-INF/lib目錄中加載所有jar包到項目的classpath中。

          能不能具體說說怎么做?我將jar文件全部拷貝到項目的lib里……不行  回復  更多評論
            
          # re: MyEclipse + AXIS2
          2015-07-08 22:48 | wangqf
          @zmaike
          從tomcat中的axis2 web應用WEB-INF/lib目錄中加載所有jar包到項目的classpath中。

          I.在SayHelloTest.java 中引入junit包。 這兩句到底怎么操作。。新手啊,能不能詳細些  回復  更多評論
            
          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 永仁县| 翁牛特旗| 肇源县| 随州市| 武穴市| 禹城市| 普陀区| 平凉市| 阿拉善盟| 驻马店市| 庄浪县| 天峻县| 博湖县| 永定县| 德兴市| 广德县| 宿迁市| 土默特左旗| 西林县| 永德县| 武汉市| 磴口县| 阿图什市| 新晃| 四会市| 射阳县| 汽车| 武胜县| 沭阳县| 宝鸡市| 新野县| 忻州市| 道孚县| 新河县| 滁州市| 稻城县| 晋州市| 浑源县| 上虞市| 灌云县| 遂昌县|