ZhipSoft.com
              冬去春來(lái)
                  鄭重聲明:本Blog純屬個(gè)人學(xué)習(xí)、工作需要,記錄相關(guān)資料。請(qǐng)不要發(fā)表任何有人身攻擊的言論,謝謝??!www.ZhipSoft.com
          posts - 94,comments - 149,trackbacks - 0

              本文主要描述如何使用Apache開(kāi)源項(xiàng)目Axis提供的API來(lái)實(shí)現(xiàn)Web Services。本文中的提到的例子只為了方便本文的描述而提出,有不妥之處請(qǐng)見(jiàn)諒。

              本文的讀者應(yīng)有JAVA web 應(yīng)用開(kāi)發(fā)基礎(chǔ)。應(yīng)該具有看過(guò)WSDL,SOAP,XML等的基本規(guī)范。熟悉Eclipse+MyEclipse開(kāi)發(fā)環(huán)境。

              本文可以隨意轉(zhuǎn)載使用,但是要保留作者的署名。

          一、環(huán)境準(zhǔn)備

          使用Axis來(lái)開(kāi)發(fā)Web services 需要準(zhǔn)備 web 服務(wù)器,Axis API。本文使用的Web container Tomcat5.5, Axis API 采用版本2

          1.1軟件下載準(zhǔn)備

          Tomcat下載地址:http://tomcat.apache.org/download-55.cgi#5.5.20

          Axis標(biāo)準(zhǔn)包:

          http://ftp.wayne.edu/apache/ws/axis2/1_0/axis2-std-1.0-bin.zip

          Axis War包:

          http://ftp.wayne.edu/apache/ws/axis2/1_0/axis2.war

          Axis Eclipse plug-in(代碼生成工具和打包工具):

          http://apache.justdn.org/ws/axis2/tools/1_0/Axis2_Code_Generator.zip

          http://apache.justdn.org/ws/axis2/tools/1_0/Axis2_Service_Archiver.zip

          Eclipse+MyEclipse可以到官方網(wǎng)站下載(本文為3.25.0GA

          1.2安裝

          A.首先搭建開(kāi)發(fā)環(huán)境,需要將下載到的Eclipse解壓縮到一個(gè)目錄。

          B.將下載到的Axis 的兩個(gè)plug-in解壓縮到Eclipse安裝目錄下的plug-in子目錄。

          C.安裝MyEclipse5.0GA。然后啟動(dòng)MyEclipse,并選擇“File->New->Other”可以找到下面的這些Wizards,這些將是本文中用到的很重要的工具。

           

          eclipse安裝Axis插件后的情況

                                       D.下面開(kāi)始搭建Web Services的部署環(huán)境。將下載的

                    tomcat報(bào)解壓縮到一個(gè)目錄。完成web container

                    的安裝。

                  E.axis2.war包拷貝到tomcat安裝目錄下的webapps

                    目錄中。

           F.啟動(dòng)Tomcat(windows 下為TOMCA_HOME/bin中的startup.bat;Linux,unix環(huán)境為startup.sh文件),打開(kāi)瀏覽器輸入并訪問(wèn):http://ip:port/axis2來(lái)查看。(如果沒(méi)有進(jìn)行陪孩子文件的修改此地址應(yīng)該為http://localhost:8080/axis,如果能看到下面的頁(yè)面則說(shuō)明已經(jīng)安裝完成。

           

           

           

          驗(yàn)證Axis2 web應(yīng)用部署

          二、Quick Start

          環(huán)境準(zhǔn)備好后,先從一個(gè)簡(jiǎn)單的例子開(kāi)始。以便對(duì)使用Axis來(lái)開(kāi)發(fā)Web services的大致流程有個(gè)了解。這個(gè)例子就是SayHello,請(qǐng)求端輸入一個(gè)名字字符串,返回的將是一個(gè)問(wèn)候語(yǔ)。

          例如:輸入了Tom,那么返回的事HiTom.How are you?

          2.1編寫(xiě)WSDL

          A.啟動(dòng)MyEclipse,新建立一個(gè)WebAppsFile->New->Project->Web Project,Project Name SayHello,其他保持不改變。

          B.選擇File->New-Other菜單,進(jìn)入后找到MyEclipse->Web Services并選擇WSDL.

          C. 選擇“src”目錄作為“Enter or select the parent folder”的值,“File name”值給定為SayHello.wsdl。點(diǎn)擊“Next”進(jìn)入下一步。

          新建wsdl 

           

          D.將目標(biāo)命名空間設(shè)置為“http://ws.tonyzhangcn.org/SayHello/”.在生成代碼的時(shí)候一般以這個(gè)命名空間為package的名字,例如:org.tonyzhangcn.ws.sayhello。這些值可以按需要設(shè)置。

          設(shè)置wsdl屬性

           

          E.點(diǎn)擊“Finish”按鈕就可以看到MyEclipse提供的WSDL 設(shè)計(jì)器的界面了??梢钥吹皆O(shè)計(jì)器為WSDL默認(rèn)的添加了一個(gè)現(xiàn)操作。

            設(shè)計(jì)器-1

          即圖中的“NewOperation”?,F(xiàn)在將其改名為SayHello,如下圖:

           設(shè)計(jì)器-2

                   之后點(diǎn)擊設(shè)計(jì)界面中的“Source”Tab來(lái)查看其代碼。如下:可以看到我們定義了一個(gè)SayHelloWeb Services,她提供了一個(gè)SayHello的方法,她能夠接受一個(gè)String(事實(shí)上是tns:SayHelloRequest對(duì)象,她對(duì)String進(jìn)行了封裝)類(lèi)型的輸入?yún)?shù)SayHelloRequest并返回一個(gè)String(事實(shí)上是tns:SayHelloResponse對(duì)象,她對(duì)String進(jìn)行了封裝)類(lèi)型的SayHelloResponse結(jié)果。更多關(guān)于WSDL的信息,請(qǐng)參考W3C的規(guī)范文檔。

           

          <?xml version="1.0" encoding="UTF-8"?>

          <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.tonyzhangcn.org/SayHello/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SayHello" targetNamespace="http://ws.tonyzhangcn.org/SayHello/">

          <wsdl:types>

          <xsd:schema targetNamespace="http://ws.tonyzhangcn.org/SayHello/">

          <xsd:element name="SayHelloResponse" type="xsd:string" />

          <xsd:element name="SayHelloRequest" type="xsd:string" />

          </xsd:schema>

          </wsdl:types>

          <wsdl:message name="SayHelloResponse">

          <wsdl:part element="tns:SayHelloResponse" name="SayHelloResponse" />

          </wsdl:message>

          <wsdl:message name="SayHelloRequest">

          <wsdl:part element="tns:SayHelloRequest" name="SayHelloRequest" />

          </wsdl:message>

          <wsdl:portType name="SayHello">

          <wsdl:operation name="SayHello">

          <wsdl:input message="tns:SayHelloRequest" />

          <wsdl:output message="tns:SayHelloResponse" />

          </wsdl:operation>

          </wsdl:portType>

          <wsdl:binding name="SayHelloSOAP" type="tns:SayHello">

          <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

          <wsdl:operation name="SayHello">

          <soap:operation soapAction="http://ws.tonyzhangcn.org/SayHello/NewOperation" />

          <wsdl:input>

          <soap:body use="literal" />

          </wsdl:input>

          <wsdl:output>

          <soap:body use="literal" />

          </wsdl:output>

          </wsdl:operation>

          </wsdl:binding>

          <wsdl:service name="SayHello">

          <wsdl:port binding="tns:SayHelloSOAP" name="SayHelloSOAP">

          <soap:address location="http://www.example.org/" />

          </wsdl:port>

          </wsdl:service>

          </wsdl:definitions>

          至此WSDL的編寫(xiě)已經(jīng)完成。

          2.2WSDL生成Java代碼

          A.選擇菜單“File->New->Other”,從對(duì)話框中選取“Axis2 Wizards”下面的“Axis2 Code Generator”.點(diǎn)擊“Next”進(jìn)入下一個(gè)頁(yè)面,保持“Generate java source code from WSDL file”被選中,點(diǎn)擊“Next”進(jìn)入下一步。

          B.點(diǎn)擊“Browse”來(lái)選取存放在src目錄下的SayHello.wsdl文件,“Next”進(jìn)入下一步。設(shè)置如下:

          Axis2 code generator

           C.點(diǎn)擊“next”進(jìn)入下一個(gè)頁(yè)面,設(shè)置“Output path”為本Projectsrc目錄。點(diǎn)擊“finish”后代在SayHello項(xiàng)目上按F5刷新就可以看到有代碼生成好了。但是能看到一堆紅“x”,這是由于沒(méi)有將Axis2jar包放入class path 中以及源代碼的package不為org.tonyzhangcn.ws.sayhello引起的。

          代碼1

           

          下面解決這個(gè)問(wèn)題,首先選擇“SayHello”項(xiàng)目,并右擊選擇“Build path->Add External Archives..”,選擇上面部署在tomcat中的axis2 web應(yīng)用WEB-INF/lib目錄中的所有jar包。之后右擊“src.org.tonyzhangcn.ws.sayhello”項(xiàng)目,選擇“Refactor->rename”,做如下修改,并選擇OK完成。

          代碼2

           

          這個(gè)時(shí)候發(fā)現(xiàn)test.org.tonyzhangcn.ws.sayhello下面的SayHelloTest.java仍然存在問(wèn)題。點(diǎn)擊此文件中package 關(guān)鍵子前面的紅“x”,會(huì)提示有兩個(gè)選項(xiàng),我們選擇下面的那個(gè)。

          code4

           

          選擇public class SayHelloTest前的紅“x”,選擇第一項(xiàng)。

          code5

           

          進(jìn)行完這幾個(gè)改動(dòng)之后,生成的代碼就沒(méi)有問(wèn)題了。其中

          SayHelloRequestSayHelloResponse是輸入輸出參數(shù)對(duì)象。

          SayHelloSkeleton是服務(wù)端對(duì)象,用來(lái)編寫(xiě)業(yè)務(wù)邏輯調(diào)用。

          SayHelloStub是客戶(hù)端用來(lái)定位endpoint(就是發(fā)布的Web Services的地址)的類(lèi),客戶(hù)端根據(jù)其提供的方法定位Web服務(wù)并發(fā)起調(diào)用

          SayHelloMessageReceiverInOut是一個(gè)實(shí)現(xiàn)同步調(diào)用的web服務(wù)信息轉(zhuǎn)換處理類(lèi)。

          Resources目錄下的services.xml文件是webservices的描述文件。

          SayHelloTest是一個(gè)客戶(hù)端的TestCase示例,用戶(hù)可以根據(jù)這個(gè)示例來(lái)編寫(xiě)自己的客戶(hù)端調(diào)用類(lèi)。

          2.3編寫(xiě)業(yè)務(wù)代碼

          打開(kāi)SayHelloSKeleton.java文件將其中的實(shí)現(xiàn)方法

           

          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)

          {

          // Todo fill this with the necessary business logic

          try

          {

          SayHelloResponse response = new SayHelloResponse();

          response.setSayHelloResponse("Hi,"+request.getSayHelloRequest()+".How are you?");

          return response;

          }catch(UnsupportedOperationException e)

          {

          throw e;

          }

          }

          2.4打包

          A.選擇菜單“File->New->Other”,從對(duì)話框中選取“Axis2 Wizards”下面的“Axis2 Services Archive”.點(diǎn)擊“Next”進(jìn)入下一個(gè)頁(yè)面

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

          C.選擇WSDL文件所在目錄,此處為src目錄下的SayHello.wsdl文件。“Next”,再“Next”。選擇services.xm文件,本文應(yīng)該是生成再src/resources下面的services.xml文件。之后選取“Generate the services.xml automatically”,然后再點(diǎn)擊一下使其變?yōu)榉沁x中狀態(tài),之后點(diǎn)擊“Back”按鈕,再點(diǎn)擊一次“Next”。(注意:這里本應(yīng)該不是這么來(lái)回折騰的,但是我的機(jī)器上只有這樣操作finish按鈕才能生效。懷疑這是一個(gè)bug,如果讀到此文的用戶(hù)沒(méi)有這種情況,忽略此提示

          D.點(diǎn)擊“Next”,將記入最后一個(gè)頁(yè)面,此處有兩個(gè)選項(xiàng),一個(gè)是輸出目錄一個(gè)是處處文件名稱(chēng)。我這里的輸出文件名稱(chēng)給的是SayHello。點(diǎn)擊“Finish”完成。

           2.5部署

          A.將打包好的文件SayHello.jar(或者可以改名為SayHello.aar),拷貝到Tomcat中已經(jīng)部署的Axis2應(yīng)用的WEB-INF/services目錄下面。

          B.啟動(dòng)Tomcat(即點(diǎn)擊Tomcat安裝目錄下的startup.bat,linuxunix下執(zhí)行startup.sh)。

          C.打開(kāi)瀏覽器,輸入http://ipaddress:port/axis2(一般為http://localhost:8080/axis2,并點(diǎn)擊其中的“services”鏈接

          testservices

             可以看到SayHello已經(jīng)被部署。點(diǎn)擊SayHello提供的連接可以看到與之對(duì)應(yīng)的WSDL。

          2.6調(diào)用測(cè)試

          A.修改SayHelloTest.java文件中的方法testSayHello的內(nèi)容為:

          public void testSayHello() throws java.lang.Exception

          {

          String url="http://localhost:8080/axis2/services/SayHello";

          org.tonyzhangcn.ws.sayhello.SayHelloStub stub = new org.tonyzhangcn.ws.sayhello.SayHelloStub(url); // the

          org.tonyzhangcn.ws.sayhello.SayHelloRequest request = (org.tonyzhangcn.ws.sayhello.SayHelloRequest) getTestObject(org.tonyzhangcn.ws.sayhello.SayHelloRequest.class);

          request.setSayHelloRequest("tonyzhangcn");

          System.out.println(stub.SayHello(request).getSayHelloResponse());

          // todo Fill in the param14 here

          assertNotNull(stub.SayHello(request));

          }

          B.從菜單中選擇“Run>Run as->JUnit Test”

          testcase

               可以看到web 服務(wù)已經(jīng)正確的返回了結(jié)果。那么,不用TestCase類(lèi)可以調(diào)用WebServices嗎?答案是肯定的,我們可以隨便些一個(gè)帶有main方法的類(lèi),并仿照SayHelloTest.java中的testSayHello()方法就可以達(dá)到調(diào)用Web Services的目的了。

           

          在我實(shí)際操作工程中,還遇到了兩個(gè)問(wèn)題:

          一個(gè)是缺少xalan包中的jar文件,

          解決辦法:從官網(wǎng)下載,添加進(jìn)lib中就好了

          一個(gè)是在自動(dòng)產(chǎn)生的JUnit Test類(lèi)中有兩個(gè)方法,都要實(shí)現(xiàn),

          解決辦法:可以去掉一個(gè)方法。



                  本Blog純屬個(gè)人學(xué)習(xí)、工作需要,記錄相關(guān)資料。請(qǐng)不要發(fā)表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn
          posted on 2007-05-17 22:16 ZhipSoft 閱讀(24778) 評(píng)論(45)  編輯  收藏 所屬分類(lèi): Web Servers

          FeedBack:
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-06-29 09:02 | 過(guò)客2
          response.setSayHelloResponse("Hi,"+request.getSayHelloRequest()+".How are you?");


          我按你的步驟做,提示沒(méi)有response.setSayHelloResponse這個(gè)方法
          The method setSayHelloResponse(String) is undefined for the type
          SayHelloResponse

          是什么原因的?
            回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-07-06 13:11 | magnate
          @過(guò)客2
          now the method setSayHelloResponse has been replaced by setOut/setIn , u can check it  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis) [未登錄](méi)
          2007-08-09 17:27 | victor
          按照上面的方法走了一遍,還有兩個(gè)錯(cuò)誤,編譯不過(guò)去

          1.SayHelloMessageReceiverInOut類(lèi)里,
          org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,msgContext.getOperationContext());提示configureBusinessLogicProvider方法不存在,我看DependencyManager類(lèi)確實(shí)沒(méi)有這個(gè)方法,難道是版本的問(wèn)題?

          2.SayHelloStub類(lèi)里生成java.lang.Object object = fromOM(getElement(_returnEnv, "document"),org.example.www.sayhello.SayHelloResponse.class,getEnvelopeNamespaces(_returnEnv));代碼,但沒(méi)有g(shù)etElement()方法,getElement方法怎么寫(xiě)?  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-09-06 15:47 | zql
          暈,太假了,老是有錯(cuò)  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-09-13 15:00 | wangjun
          我也碰到類(lèi)似的問(wèn)題
          1.SayHelloMessageReceiverInOut類(lèi)里,
          org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,msgContext.getOperationContext());提示configureBusinessLogicProvider方法不存在,我看DependencyManager類(lèi)確實(shí)沒(méi)有這個(gè)方法,難道是版本的問(wèn)題?

          2.SayHelloStub類(lèi)里生成java.lang.Object object = fromOM(getElement(_returnEnv, "document"),org.example.www.sayhello.SayHelloResponse.class,getEnvelopeNamespaces(_returnEnv));代碼,但沒(méi)有g(shù)etElement()方法,getElement方法怎么寫(xiě)?


          不知道哦樓主是否有辦法解決??!

          如果有的話是否能給我發(fā)個(gè)郵件
          jun.wang@pccw.com  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-09-18 16:04 | jjtking
          我也是同樣的問(wèn)題,不知道到底錯(cuò)在那里

          1.SayHelloMessageReceiverInOut類(lèi)里,
          org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,msgContext.getOperationContext());提示configureBusinessLogicProvider方法不存在,我看DependencyManager類(lèi)確實(shí)沒(méi)有這個(gè)方法,難道是版本的問(wèn)題?

          2.SayHelloStub類(lèi)里生成java.lang.Object object = fromOM(getElement(_returnEnv, "document"),org.example.www.sayhello.SayHelloResponse.class,getEnvelopeNamespaces(_returnEnv));代碼,但沒(méi)有g(shù)etElement()方法,getElement方法怎么寫(xiě)?


          不知道哦樓主是否有辦法解決啊!

          如果有的話是否能給我發(fā)個(gè)郵件
          jjtking@163.com   回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-09-18 16:08 | 老是有問(wèn)題啦
          我也碰到了上面兩個(gè)問(wèn)題,不之大如何解決啊,有沒(méi)有誰(shuí)能幫忙解答下啊。

          我也碰到了上面兩個(gè)問(wèn)題,不之大如何解決啊,有沒(méi)有誰(shuí)能幫忙解答下啊。

          我也碰到了上面兩個(gè)問(wèn)題,不之大如何解決啊,有沒(méi)有誰(shuí)能幫忙解答下啊。

          我也碰到了上面兩個(gè)問(wèn)題,不之大如何解決啊,有沒(méi)有誰(shuí)能幫忙解答下啊。

          我也碰到了上面兩個(gè)問(wèn)題,不之大如何解決啊,有沒(méi)有誰(shuí)能幫忙解答下啊。  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-09-26 15:04 | lddongyu
          碰到同樣的問(wèn)題呀,摟主幫幫忙  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-10-19 10:56 | 可克
          怎么會(huì)有nullpointerException異常呢?  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-10-26 14:29 | 問(wèn)題
          1.SayHelloMessageReceiverInOut類(lèi)里,
          org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,msgContext.getOperationContext());提示configureBusinessLogicProvider方法不存在,我看DependencyManager類(lèi)確實(shí)沒(méi)有這個(gè)方法,難道是版本的問(wèn)題?

          2.SayHelloStub類(lèi)里生成java.lang.Object object = fromOM(getElement(_returnEnv, "document"),org.example.www.sayhello.SayHelloResponse.class,getEnvelopeNamespaces(_returnEnv));代碼,但沒(méi)有g(shù)etElement()方法,getElement方法怎么寫(xiě)?

            回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2007-12-14 15:37 | 浪子
          SayHello.jar在哪里??我找不到
          org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) /axis2/services   回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-03-26 15:46 | xjlinetp
          getElement錯(cuò)誤是引用的包不對(duì),axis2-kernel-1.0.jar這個(gè)包就對(duì)了  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis) [未登錄](méi)
          2008-04-11 13:15 | john
          樓主,我在打包的那一步(即最后一個(gè)是輸出目錄一個(gè)是輸出文件名稱(chēng)時(shí))點(diǎn)擊“finish”按鈕以后出現(xiàn)一個(gè)報(bào)錯(cuò)對(duì)話框“filesets”。還請(qǐng)樓主指教  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-04-13 00:05 | adio
          圓滿完成!謝謝樓主 !
          大家部署的時(shí)候一定要細(xì)心!
          樓主的方法絕對(duì)可行!
          補(bǔ)充一下,output的element是SayHelloResponse生成的wdsl里總是沒(méi)有找個(gè)xsd:element!本人剛學(xué)習(xí),還不知道為什么?
          誰(shuí)明白答復(fù)下謝謝!  回復(fù)  更多評(píng)論
            
          # 2
          2008-04-29 17:11 | jiangisli
          怎么不出來(lái)回復(fù)一下,大家都是類(lèi)似的情況!!
            回復(fù)  更多評(píng)論
            
          # 2
          2008-04-29 17:27 | jiangsili
          我還多了一個(gè)SayHello.java文件
          你上面是5個(gè),我上多了一個(gè),六個(gè)了
          怎么回事  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-04-30 14:54 | OverLords
          又一個(gè)圓滿完成的,謝謝樓主 !
          部署的時(shí)候如果不注意某些細(xì)節(jié)的話鐵定出錯(cuò)。  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-08 12:53 | 小瓶子
          太感謝了,沒(méi)用問(wèn)題,很多天前就想看了,可是一直沒(méi)有看到合適的文章....  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-08 14:36 | 小瓶子
          很想知道有多個(gè)方法和身份驗(yàn)證怎么開(kāi)發(fā),期待大家的回答....  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-13 13:59 | waterblue
          我在打包的那一步(即最后一個(gè)是輸出目錄一個(gè)是輸出文件名稱(chēng)時(shí))點(diǎn)擊“finish”按鈕以后出現(xiàn)一個(gè)報(bào)錯(cuò)對(duì)話框“filesets”。還請(qǐng)指教  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-16 17:55 | tangtang
          摟主強(qiáng)烈建議把打包這一步的圖片傳上來(lái),我也遇到filesets問(wèn)題,不知道怎么解決。  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-16 17:57 | tangtang
          我也碰到這個(gè)問(wèn)題了,你要解決了請(qǐng)告訴我怎么解決的qq:414139396  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-17 16:13 | tangtang
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝
          打包的時(shí)候最后提示:filesets 問(wèn)題到底是怎么回事,幫幫忙給解釋下好嗎?謝謝  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-05-19 08:49 | tangtang
          “filesets”的問(wèn)題解決了,現(xiàn)在把原因告訴碰到同樣問(wèn)題的朋友。我用的是tomcat6。主要原因是因?yàn)閑clipse的兩個(gè)插件的版本的是,我換成:1.3版本就能通過(guò)了。希望遇到同樣問(wèn)題的朋友可以參考一下。
            回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-06-05 09:46 | xulong
          解決了 “configureBusinessLogicProvider方法不存在”問(wèn)題的兄臺(tái)請(qǐng)把解決的方法貼出來(lái)啊,不勝感激!  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2008-07-07 17:13 | QOO
          @tangtang
          “filesets”的問(wèn)題解決了,現(xiàn)在把原因告訴碰到同樣問(wèn)題的朋友。我用的是tomcat6。主要原因是因?yàn)閑clipse的兩個(gè)插件的版本的是,我換成:1.3版本就能通過(guò)了。希望遇到同樣問(wèn)題的朋友可以參考一下。
          1.3 <- 是指plugins 或是 JDK? 因?yàn)槲乙彩怯龅较嗤膯?wèn)題,  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-03-10 23:14 | ava
          能再問(wèn)個(gè)問(wèn)題嗎:我用瀏覽器能查看ws的wsdl,但是用客戶(hù)端調(diào)用時(shí)報(bào)如下錯(cuò)誤
          org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) /axis2/services   回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-07 15:37 | eclip
          Error: org.apache.axis2.deployment.DeploymentException: A ClassNotFoundException error occurred in loading the message receiver org.example.www.sayhello.SayHelloMessageReceiverInOut 出現(xiàn)這樣錯(cuò)誤,該怎么解決啊?樓主  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-14 22:58 | dabing
          1.SayHelloMessageReceiverInOut類(lèi)里,
          org.apache.axis2.engine.DependencyManager.configureBusinessLogicProvider(obj,msgContext.getOperationContext());提示configureBusinessLogicProvider方法不存在,我看DependencyManager類(lèi)確實(shí)沒(méi)有這個(gè)方法,難道是版本的問(wèn)題?

          2.SayHelloStub類(lèi)里生成java.lang.Object object = fromOM(getElement(_returnEnv, "document"),org.example.www.sayhello.SayHelloResponse.class,getEnvelopeNamespaces(_returnEnv));代碼,但沒(méi)有g(shù)etElement()方法,getElement方法怎么寫(xiě)?


          不知道哦樓主是否有辦法解決?。?
          ---------------------------------------------------------
          我開(kāi)始也遇到這兩個(gè)問(wèn)題,后來(lái)分析了一下,是引用jar包的時(shí)候引用了axis2-1.4.1中l(wèi)ib下的所有jar包,所以有些方法已經(jīng)過(guò)時(shí)或者已經(jīng)被刪除了,所以引用axis2-1.0中l(wèi)ib下的jar包到工程下,就不會(huì)出現(xiàn)上述問(wèn)題了。
          另外,由于博主的文章是07年的,比較早,我現(xiàn)在按照博主的文章去下載axis安裝包時(shí),已經(jīng)找不到1.0的war文件了,只有bin標(biāo)準(zhǔn)版,所以我就下載了1.4.1的war文件,并把它部署到tomcat中,然后引用jar包時(shí),引用的是1.0標(biāo)準(zhǔn)版中的lib文件夾下的jar包,就沒(méi)啥問(wèn)題了。
            回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-14 23:16 | dabing
          我在打包的那一步(即最后一個(gè)是輸出目錄一個(gè)是輸出文件名稱(chēng)時(shí))點(diǎn)擊“finish”按鈕以后出現(xiàn)一個(gè)報(bào)錯(cuò)對(duì)話框“filesets”。還請(qǐng)指教
          --------------------------------------------------------------
          這個(gè)問(wèn)題的原因,就是你使用了Axis_Service_Archiver_1.0.0這個(gè)打包工具來(lái)打包,改用Axis2_Service_Archiver_1.3.0來(lái)打包,就ok了!  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-15 01:33 | dabing
          使用Axis2 Code Generator時(shí)產(chǎn)生InvocationTargetException 的解決辦法

          Axis2 Code Generator作為一個(gè)在Eclipse中使用的能自動(dòng)根據(jù)WSDL生成Java文件以及根據(jù)Java文件生成WSDL的插件,安裝好后使用往往會(huì)出現(xiàn)InvocationTargetException異常,這時(shí)可嘗試:

          1. 將backport-util-concurrent-3.1.jar從 $AXIS2_HOME\lib (我的是:D:\Tomcat 5.5\webapps\axis2\WEB-INF\lib) 處拷貝至 $ECLIPSE_HOME\plugins\Axis2_Codegen_Wizard_1.3.0\lib;

          2. 編輯文件 $ECLIPSE_HOME\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml, 在其中runtime元素中增加內(nèi)容:

          <library name="lib/backport-util-concurrent-3.1.jar">
          <export name="*"/>
          </library>

          3. 將 $workspace位置\.metadata\.plugins (我的是:D:\Workbench\.metadata\.plugins)下目錄 Axis2_Codegen_Wizard 刪除

          4. 在命令行下切換至$ECLIPSE_HOME (我的是:D:\MyEclipse 5.5.1 GA\eclipse)目錄,然后執(zhí)行:

          eclipse -clear

          就OK啦!  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-15 01:35 | dabing
          啊,半夜了,終于挑通了!開(kāi)心ing~洗洗睡去啦~  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis) [未登錄](méi)
          2009-04-27 23:20 | zeng
          filesets到底怎么回事?不能用AXIS2.0,要用1.4嗎?  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-04-29 18:55 | haozhengfang
          謝謝啦 調(diào)通,繼續(xù)努力學(xué)習(xí)!大家要注意細(xì)節(jié)的東西啊  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-05-04 15:50 | dabing
          @zeng
          出現(xiàn)filesets問(wèn)題是因?yàn)榘姹咎系木壒剩髡弋?dāng)時(shí)用的是AXIS1.0,而且代碼生成工具也用的老版本的工具。
          我下載的是AXIS1.4版本,工具也是一起下的,2.0的沒(méi)用過(guò),你用的時(shí)候靈活些,不用字字都照著博主的文章做,博主只是提供了一個(gè)大致的流程,出現(xiàn)的各種具體問(wèn)題,希望大家能自己查找原因,百度和谷歌就是老師嘛,這樣也能學(xué)習(xí)到不少東西呢。一起努力!  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-09-06 19:38 | @陳婧
          天啦,終于給讓我弄出來(lái)了。吃晚飯去  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2009-12-03 09:21 | 筆記本
          plug in 無(wú)法下載啊  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2010-06-02 14:07 | jy
          感謝樓主這么好的文章,解決了我很多問(wèn)題,調(diào)了n次,終于調(diào)通了。  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2010-06-27 09:50 | yvee
          你好。2.4D步驟(打包),一個(gè)是Service name,這個(gè)是隨便自己寫(xiě)的,對(duì)嗎?另一個(gè)是Class name,這個(gè)名字寫(xiě)什么呢?我是隨便寫(xiě)的。但是最后finish按鈕無(wú)效。根本無(wú)法點(diǎn)擊。期待解決  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2010-12-13 19:17 | zhangwei
          @eclip
          大哥,我也遇到了這個(gè)問(wèn)題,你調(diào)出來(lái)了沒(méi)有  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2011-05-13 22:31 | cn00568347
          能幫我解釋一下  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          2011-05-13 22:33 | cn00568347
          能幫我解釋一下
          http://topic.csdn.net/u/20110512/22/85f2435e-b200-452b-a889-dd1468419aa0.html
          里的兩個(gè)問(wèn)題嗎,是按照你的方法做的,但不知道錯(cuò)在哪里,謝謝  回復(fù)  更多評(píng)論
            
          # re: MyEclipse下開(kāi)發(fā)Web Service(Axis)
          # 重要問(wèn)題
          2011-10-15 08:23 | jsqfzhl
          在sayHellotest類(lèi)下需要加上下面一個(gè)類(lèi)才能運(yùn)行:
          public org.apache.axis2.databinding.ADBBean getTestObject(
          java.lang.Class type) throws java.lang.Exception {
          return (org.apache.axis2.databinding.ADBBean) type.newInstance();
          }  回復(fù)  更多評(píng)論
            
          # 重要問(wèn)題
          2011-10-15 08:26 | jsqfzhl
          在SayHelloTest.java類(lèi)下需要加上下面一個(gè)類(lèi)才能運(yùn)行:



          public org.apache.axis2.databinding.ADBBean getTestObject(
          java.lang.Class type) throws java.lang.Exception {
          return (org.apache.axis2.databinding.ADBBean) type.newInstance();
          }  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 寿光市| 铜陵市| 和林格尔县| 聊城市| 类乌齐县| 珠海市| 田阳县| 墨脱县| 乐山市| 蓝田县| 保靖县| 阳西县| 安义县| 平阴县| 怀来县| 金塔县| 襄樊市| 东宁县| 山阳县| 明水县| 东安县| 馆陶县| 吉水县| 大同县| 盱眙县| 建水县| 太保市| 九台市| 三台县| 渭源县| 新乐市| 鹰潭市| 吉安县| 平潭县| 上蔡县| 新蔡县| 临泉县| 壶关县| 宕昌县| 龙口市| 赤城县|