<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    博學而篤志,好問而近思

    【原創】關于Web Services技術中的Axis2的使用及Web服務的發布!

    ????????????????????關于 Web Serviece?以及?Axis2 技術(修定1.2v)

    ?? 本人的公司在最近的一個金融項目上用到了AXIS2 1.0版,在Tomcat上部署AXIS2,用來發布Web Services
    我下載了AXIS2 1.0 的?War發布包 成功的安裝了AXIS2并且發布了一些Web Services。

    我了解到現在很多同仁都曾經用過或將要用到AXIS2技術開發Web Services,為了給更多的想要了解AXIS2技術的人提供方便,鑒于個人的能力和知識有限,我制造此貼并熱情的邀請使用過AXIS的
    同仁們能來此發表你們的心得和看法。


    以下是我發布一個簡單的Web Services的過程跟大家分享:
    一 .? 從www.Apache.org下載Axis2的War發布包并解壓縮到D:/Axis2。

    二 .? 將整個Axis2目錄都復制到 D:\Tomcat 5.5\webapps 目錄下。(我的Tomcat裝在D盤D:\Tomcat 5.5目錄下,以下目錄問題我將不多解釋,大家應該能看得明白)

    三 .? 在D:\Tomcat 5.5\conf\Catalina\localhost目錄下創建配置文件axis2.xml, 文件內容如下:
    <Context path="/axis2" reloadable="true" docBase="D:\Tomcat 5.5\webapps\Axis2\axis2-web" />

    四 .? 此時已經把Axis2安裝到Tomcat上了,下面啟動Tomcat在IE中輸入
    "http://localhost:8080/Axis2"來驗證一下!(出來的畫面有Axis標題)

    五 .下面開使來發布一個簡單的Web Services(關鍵是需要打包成.aar格式
    ??????(1)創建Web服務的工作類MyService.java,如下:

    public class MyService{
    ??? public void ping(OMElement element){
    ???? ......? //這是一個用來獲取對方地址的Web服務方法
    ??? }
    ??? public OMElement echo(OMElement element){
    ???? ......? //這是一個發送請求并返回結果的Web服務方法
    ??? }
    }
    ????? (2)寫配置文件services.xml
    <service >
    ??? <description>
    ??????? This is a sample Web Service with two operations, echo and ping.
    ??? </description>
    ??? <parameter name="ServiceClass" locked="false">AxisDemo.MyService</parameter>
    ??? <operation name="echo">
    ??????? <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    ??????? <actionMapping>urn:echo</actionMapping>
    ??? </operation>
    ???? <operation name="ping">
    ??????? <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
    ??????? <actionMapping>urn:ping</actionMapping>
    ??? </operation>
    </service>
    ????? (3)做到這里就可以打包發布了,有人會問,把我這兩個文件放到一個自己建的文件夾然后打包嗎?我想那樣做可能也可以,但是我推薦還是用這樣一個包結構比較好(由于圖示考到文本框中后顯示空白我只好口頭描述了):
    ????????? a.先在D:盤中建一個文件夾AxisDemo
    ????????? b.在AxisDemo下面建一個文件夾META-INF,并把MyService.java放在這里
    ????????? c.在META-INF下放配置文件services.xml

    六 .? 打包:
    ????? 1.在你的Windows開始菜單中點擊"運行",輸入 cmd? 命令打開命令操作器,在命令操作器中輸入 cd\ 命令退到C:>? (根目錄),再輸入 D: 轉到D:> (我們的AxisDemo就在D:盤中,我們要將文件夾中的東東打包)
    ????? 2.然后輸入打包命令:
    jar ?cvf? MyAxisDemo.aar??AxisDemo/.千萬不要丟了最后那個點啊),此時你會發現D:盤下生成了一個MyAxisDemo.aar文件 (打包完成)

    七 . 發布:
    ????? (1)發布時我們打開IE輸入 http://localhost:8080/axis2? 然后點擊 Administration 進入AXIS2管理界面,
    輸入用戶名:Admin? 密碼:Axis2? 登陸進去,再點擊第一個 鏈接 Upload Service ,然后點瀏覽找到你想要發布的Web Service文件(即.aar文件),點Upload發布它!
    ?
    ?????? (2)重啟你的Tomcat服務然后在IE中輸入"http://localhost:8080/Axis2",點擊那個Services鏈接吧,你就可以看到你剛發布的名為MyService的Web服務了!



    ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ----冰川
    ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 2006/6/26

    ?

    posted on 2006-06-26 17:52 冰川 閱讀(11339) 評論(71)  編輯  收藏

    評論

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-26 17:59 冰川

    我真心的希望有更多的朋友在這里得到收獲!  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-26 22:57 lizongbo


    axis2好像還不支持httpGet :(

      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 08:29 冰川

    @lizongbo:
    是嗎,謝謝你的回貼。
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 10:44 shrimp

    可是點擊MyService看不到WSDL文件的形式啊?
    還有,它的異步傳輸模式是怎么實現的,客戶端是監聽嗎  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 12:32 冰川

    @shrimp:
    1.我的可以看到WSDL文件啊,你那里報了什么錯嗎?
    2.異步傳輸模式我還沒用到,下次去看看
    3.客戶端應該是監聽的  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 16:04 冰川

    @shrimp:
    關于AXIS2中客戶端API同步/異步問題
    同步/異步(或阻塞/非阻塞)行為是基于在web service請求的線程,同步服務將會阻塞,等待相關消息到達。另一方面,異步請求僅僅返回,等待相關消息被后臺另一個不同線程執行。
    同步請求很簡單:請求在相關消息到達前等待,并且可以像本地過程調用一樣被編碼。但是異步消息的相互關系就比較復雜,客戶端必須處理這種復雜性。盡管如此,通過一些額外工作來處理這種復雜情況仍是必要的。

    應答式消息可以表現為以下四種方式:

    1.雙向In-Out 同步
    2.雙向In-Out 異步
    3.單向In-Out 同步
    4.單向In-Out 異步

    下面的代碼實例說明這些案例怎樣被Axis2尋址,注意客戶端API的四種屬性怎樣被使用。

    1.In-Out同步,HTTP作為雙向傳輸方式

    OMElement payload = .... Call call = new Call();call.setTo( new EndpointReference(AddressingConstants.WSA_TO, "HTTP://...));call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);OMElement result = (OMElement) call.invokeBlocking( operationName.getLocalPart(), payload);

    這里,SOAP消息經由同一個HTTP連接傳播,地址屬性沒有指定,所以它們在服務器方缺省為匿名,客戶端API將被鎖定直到回復消息到達。

    2.In-Out異步,HTTP使用HTTP作為雙向傳送

    //this is the payload goes on the body of SOAP message OMElement payload = .... Call call = new Call();call.setTo( new EndpointReference(AddressingConstants.WSA_TO, "HTTP://...));call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);Callback callback = new Callback() { public void onComplete(AsyncResult result) { //what user can do to result } public void reportError(Exception e) { //on error }};call.invokeNonBlocking(operationName.getLocalPart(), payload, callback);

    和前面相同,SOAP消息經由同一個HTTP連接傳輸并且不需要尋址,一旦回復消息到達客戶端API不會阻塞并且回調將被執行。

    3.In-Out, 異步HTTP 作為單向傳輸

    OMElement payload = .... Call call = new Call();call.setTo( new EndpointReference(AddressingConstants.WSA_TO, "HTTP://...));call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, true);Callback callback = new Callback() { public void onComplete(AsyncResult result) { .... } public void reportError(Exception e) { ... }};call.engageModule(new Qname("addressing"));call.invokeNonBlocking(operationName.getLocalPart(), method, callback);

    在這個案例中,SOAP消息通過兩個HTTP連接傳輸,尋址是強制的,ReplyTo標題出現指示服務器端經由單獨的通道發送回應。客戶端沒有阻塞,當回應消息到達時,喚起回調。

    4.In-Out, 同步 HTTP 作為單向傳送

    OMElement payload = .... Call call = new Call();call.setTo(new EndpointReference(AddressingConstants.WSA_TO, "HTTP://...));call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, true);OMElement result = (OMElement) call.invokeBlocking( operationName.getLocalPart(), payload);

    在這種場合下使用"In-Out,異步HTTP作為單向傳送"類型,在結果到達第二種連接時喚起阻塞,執行并返回結果。

    總結

    總而言之,web wervice消息行為建立在三種因素上:消息交互模式,客戶端同步異步模式和傳送行為。Asis2建立核心在不一定要任何MEP類型,不過為MEPs的廣泛支持:單向和應答提供了客戶端API支持,這篇文章解釋Axis2消息支持概念和客戶端API的使用。

      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 16:10 冰川

    以上回復中的代碼由于復制過來后忘了排版,造成了閱讀不方便,我很抱歉。
    請大家把代碼自行復制,然后排一下版再看吧  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 16:22 冰川

    大家也可以像我那樣以回貼的形式,發表自己關于AXIS2的使用心得或經驗以供其他人共享!

    我想讓急需了解AXIS2技術的人能夠在一個地方得到盡可能多的有關AXIS2的知識和代碼實例,這樣可以節約他們的時間,給他們帶來便利。

    希望用過AXIS2 和 對AXIS2有一定研究的同仁們多多來這里發表經典回貼 !

      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 17:08 shrimp

    我試驗的時候 ,看的是axis2里自帶的userguide,客戶端調用的代碼感覺和你上面給的不一樣,沒有Call的實例創建,倒是有Options 。我用的是Axis2 的1.0版本 ,你用的是這個版本嗎?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 17:10 shrimp

    文檔中描述在客戶端API可以支持WSDL1.1和WSDL2.0,可是在某些地方看到的說目前沒有WSDL2.0的reader,目前到底是一個什么階段啊?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-27 19:32 shrimp

    @冰川
    部署后,點擊MyService,顯示的信息如下,并沒有wsdl文件的形式,而它的版本version服務倒可以顯示wsdl.

    <error>
    <description>Unable to generate WSDL for this service</description>
    <reason>Either user has not dropped the wsdl into META-INF or operations use message receivers other than RPC.</reason>
    </error> 回復
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-28 09:06 冰川

    @shrimp:

    1. 我用的是AXIS2 1.0版
    2. www.w3.org(萬維網組織全球辦事處)上有WSDL2.0的Reader具體網址:
    http://www.w3.org/TR/wsdl20/
    3. 你的錯誤信息說WSDL文件沒有進入到META-INF文件夾,還說什么你用了其他的RPC接受信息,我也搞不懂,你試試用AXIS2另一種發布方法吧!
    步驟如下:
    (1)前面的操作一直到打包都按照首帖上面的做。
    (2)發布時我們不把.aar文件考過去了,而是打開IE輸入http://localhost:8080/axis2進入Axis2界面(Tomcat要開啟),然后點擊
    Administration,輸入用戶名:Admin 密碼:Axis2登陸進去,再點擊第一個
    鏈接Upload Service,然后點瀏覽找到你想要發布的Web Service文件(即.aar文件),點Upload發布它!
    (3)在IE輸入http://localhost:8080/axis2后點Service去確認一下吧
    上帝會保佑你的,阿門~~~

      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-28 15:38 小青蛙

    上面的方法也解決不了問題,這是AXIS V1的一個BUG去下一個Nightly Builds的版本可解決問題。

    BTW第三步在TOMCAT5中是非必需的,可自動部署  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-28 17:00 冰川

    @小青蛙:
    樓主在這里謝謝你的支持!  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-28 19:34 shrimp

    @冰川
    @小青蛙
    下載了nightlybuild的war文件,復制到webapps目錄下,查看http://localhost:8080/axis2 時出現以下的錯誤提示,連service 列表都顯示不了。
    org.apache.jasper.JasperException
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-28 19:37 shrimp

    @冰川
    客戶端代碼,我是在axis2-std-1.0-bin\samples\userguide\src\userguide\clients目錄下的客戶端調用的代碼感覺和你上面給的不一樣,沒有Call的實例創建,倒是有Options,這個是不是0.95版本上的,它們的差別是什么?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-29 11:22 冰川

    @shrimp:

    1。你就按我的首貼做就好了,我修改并測試過了的。
    2。具體Call,和Options的意思和用法可以去查看你下載的發布包中的類說明文檔,就在javadocs文件夾中。
    3。下面是調用Web Service的客戶端代碼示例,大家有什么使用經驗或者好的代碼示例也可以寫回帖共享啊!

    用非阻塞、雙向方式調用Web Service方法:"Echo" 的客戶端程序
    (本人以及Userguide都推薦使用,也是比較常用的客戶端寫法)
    try{
    OMElement payload = ClientUtil.getEchoOMElement();

    Options options = new Options();
    options.setTo(targetEPR); // 左邊的參數:targetEPR == "http:/..."
    options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
    options.setUseSeparateListener(true);
    options.setAction("urn:echo"); //這是我們在 service.xml 里的 Action 映射

    //Callback to handle the response
    Callback callback = new Callback(){
    public void onComplete(AsyncResult result){
    System.out.println(result.getResponseEnvelope());
    }

    public void onError(Exception e){
    e.printStackTrace();
    }
    };

    //非阻塞方式
    sender = new ServiceClient();
    sender.engageModule(new QName(Constants.MODULE_ADDRESSING));
    sender.setOptions(options);
    sender.sendReceiveNonBlocking(payload,callback);

    //等待,直到接受到響應消息
    while(!callback.isComplete()){
    Thread.sleep(1000);
    }

    //在這里需要關閉客戶端

    }catch(AxisFault axisFault){
    axisFault.printStackTrace();
    }catch(Exception ex){
    ex.printStackTrace();
    }
    finally{
    try{
    sender.finalizeInvoke();
    }catch(AxisFault axisFault){
    //此處代碼省略
    }
    }

    希望大家多多貢獻關于Axis2的知識(:  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-30 13:55 shrimp

    @冰川
    仔細看了你上面的部署之前的操作,關于第5,第6 的說明感覺有些不對,文件的具體位置并沒有說明白,明明是jar cfv MyService.aar ,怎么會生成AxisDemo.aar文件呢,example1 的目錄是什么層次,不如說直接把axis2給的userguide下example1中的實例直接拷過去 ,我就是直接復制過去的。不知道會有什么差別?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-30 16:47 冰川

    @shrimp:
    哈哈,是錯了,謝謝提出來,我實現后語句有的不記得的只好考了userguide里的語句,結果出了這種BUG,哈哈哈
    2.直接考過去也可以的,看你的Tomcat是什么版本,可以自動發布的就行,
    我沒修改前發布那段寫的就是用考的后來改了,這次又要改咯!

      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-30 17:08 冰川

    @shrimp:
    你還可以看看你上樓的那篇回貼,是客戶端調用Web Services的代碼例子。
    (即 2006-06-29 11:22 | 冰川 那篇帖子)

    另外:大家還有更好的客戶端調用Web Services代碼例子也請貼到這邊來啊!
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-30 17:21 嘎崩豆

    axis2的1.0版本自己部署的服務不能生成wsdl文件,而version倒是可以生成wsdl文件,后來將部署服務的wsdl文件復制到META-INF目錄下就可以了,因為是使用已有的例子,但不知道axis2下的Java2WSDL工具如何使用,還是沒有此工具?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-06-30 17:51 冰川

    @嘎崩豆:
    這個...Java2WSDL工具有是有,不過一般不直接用,而是在Eclipse中可以用到這個功能,我沒具體用過,希望遇到高人給你解答

    你先下個文檔看看吧:
    http://ws.apache.org/axis2/download/1_0/download.cgi

    下到本地接壓縮后再打開這個本地路徑看看(下面是目錄結構)
    xdocs\tools\1_0\CodegenToolReference.html
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-04 11:20 嘎崩豆

    axis1.x 版本下是否支持異步傳輸模式,別人說在1.x下是有的。
    或許自己編程在客戶端調用來實現
    ?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-04 15:16 happy

    報錯如下:(
    Invalid service MyService.aar due to services.xml not found for service   回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-12 18:46 冰川

    @happy:
    我這段時間在忙項目開發,沒有時間來回答你們的問題
    抱歉!這個錯誤是MyService.aar里的配置文件寫錯了,請檢查!
    你再按我首貼的步驟試試,我測試過整個過程的,最后生成MyAxisDemo.arr
    文件再發布。

    再次希望,有高人路過時幫我解決一下大家的問題,不然我寫這篇討論貼
    就變成我唱獨角戲了,此貼也就失去了意義
    再次誠心邀請有使用過AXIS2的同仁一起來參加我們的討論!
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-12 18:50 冰川

    難道是這里缺乏高手嗎?
    我想不會的,這里可是blogjava-專注于java技術的社區啊!  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-18 21:03 Shooper.Java

    你上面第三步不對

    三 . 在D:\Tomcat 5.5\conf\Catalina\localhost目錄下創建配置文件axis2.xml, 文件內容如下:
    <Context path="/axis2" reloadable="true" docBase="D:\Tomcat 5.5\webapps\Axis2\axis2-web" />

    應該是

    <Context path="/axis2" reloadable="true" docBase="D:\Tomcat 5.5\webapps\Axis2" />  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-18 21:06 Shooper.Java

    你跑起來是因為你把應用拷到了Tomcat 5.5\webapps 下,這個目錄下,tomcat啟動時會自動發布應用  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-19 12:50 冰川

    @Shooper.Java:
    謝謝,我想是這樣的,不過如果不在Axis2下發布就不需要拷到Webapps下了。  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-24 10:07 Owen.ou

    部署后,點擊MyService,顯示的信息如下,并沒有wsdl文件的形式,而它的版本version服務倒可以顯示wsdl.
    <error>
    <description>Unable to generate WSDL for this service</description>
    <reason>Either user has not dropped the wsdl into META-INF or operations use message receivers other than RPC.</reason>
    </error>

    之前看到過一篇文章,作者介紹說遇到這種情況沒什么關系,部署后的Web Service可以正常被調用,我做過試驗,確實可以。

    本人最近也在學習Axis2和SOAP,歡迎各位朋友交流經驗!
    我的MSN:ouxingning@hotmail.com


      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-27 18:14 冰川

    @Owen.ou
    是嗎?我沒有試過,這樣也可以啊。
      回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-28 17:31 seanzhuxukai

    不用顯示WSDL是可以的

    請問用.net能調用AXIS2寫的WebServices嗎?  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-31 08:33 冰川

    @seanzhuxukai
    我不會.NET的,不好意思  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-07-31 10:27 XFly

    @嘎崩豆
    eclipse中生成wsdl很容易的,通過axis2的插件很方便就可以做到,只是我用的時候好像有個bug,就是如果生成包含自定義類型的wsdl不是正確的,其中包括重復的service標簽,這個刪掉就行了.  回復  更多評論   

    # re: 關于Web Services技術中的Axis2的使用及Web服務的發布!(此為討論貼,請高人加入討論) 2006-08-03 09:15 冰川

    @XFly
    謝謝你的支持
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-08-26 09:55 binbin

    @嘎崩豆
    部署服務的wsdl文件 在什么地方?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-08-26 10:40 binbin

    想和大家交個朋友,我的qq:232203251
    先跟大家學習axis2。  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-08-27 09:53 彬彬

    @冰川
    我覺得這個文章沒什么用,全是最基本的東西。對與開發webservice起不到什么作用。
    你怎么不寫個,axis2怎么傳遞對象,怎么傳遞list set之類的對象。
    寫個怎么簡單的文章沒有什么實質的作用。。  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-08-27 10:50 冰川

    @彬彬:
    謝謝你的建議,最近一直在趕項目
    時間比較緊張,所以才只寫了最基本的發布
    等以后有時間了我在寫一些深一點的內容
    很抱歉。
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-08-27 15:02 彬彬

    @冰川
    上面有我的qq號碼,你加我吧,我請教幾個問題。
    我的qq:232203251  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布(此為討論貼,請高人加入討論) 2006-09-01 10:31 冰川

    @彬彬:
    我很少上QQ的,另外我剛剛寫了一篇關于Axis2的客戶端和服務器端具體實現的帖子,你有時間的話可以看看,好長的,呵呵。

      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-13 14:29 啊啊

    三 . 在D:\Tomcat 5.5\conf\Catalina\localhost目錄下創建配置文件axis2.xml, 文件內容如下:
    <Context path="/axis2" reloadable="true" docBase="D:\Tomcat 5.5\webapps\Axis2\axis2-web" />
    這個東西根本不用加.  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-16 12:46 zhms999

    按照的你方法,是無法看見wsdl文件的,
    http://localhost:8080/axis2/services/MyService?wsdl

    會提示如下信息
    - <error>
    <description>Unable to generate WSDL for this service</description>
    <reason>If you wish Axis2 to automatically generate the WSDL, then please use one of the RPC message receivers for the service(s)/operation(s) in services.xml. If you have added a custom WSDL in the META-INF directory, then please make sure that the name of the service in services.xml (/serviceGroup/service/@name) is the same as in the custom wsdl's service name (/wsdl:definitions/wsdl:service/@name).</reason>
    </error>  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-19 20:37 冰川

    @啊啊
    謝謝你的意見,如果你是用的eclipse自動配置的項目就可以不用這句的.
    @zhms999
    你是否啟動了遠程方法調用(RPC)服務啊?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-21 22:43 zhms999

    肯定啟動了的啊,難道你的可以嗎?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-22 13:39 冰川

    @zhms999
    哦,你的.wsdl文件是怎么寫的?你把這個文件放在哪個目錄下的?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-22 16:51 soa

    我按照你的service.xml配置我的服務,老是配置不成功,這是怎么回事,都是報錯,郁悶慘了  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-22 16:55 soa

    org.apache.axis2.deployment.DeploymentException: services.xml not found for service 'C:\Tomcat 5.5\webapps\axis2\WEB-INF\services\Hello.jar'; nested exception is: org.apache.axis2.deployment.DeploymentException: services.xml not found for service 'C:\Tomcat 5.5\webapps\axis2\WEB-INF\services\Hello.jar' at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:124) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:620) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:195) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:207) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:155) at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:91) at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:142) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:42) at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:213) at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:182) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021) at org.apache.catalina.core.StandardHost.start(StandardHost.java:718) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:709) at org.apache.catalina.startup.Catalina.start(Catalina.java:551) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432) Caused by: org.apache.axis2.deployment.DeploymentException: services.xml not found for service 'C:\Tomcat 5.5\webapps\axis2\WEB-INF\services\Hello.jar' at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:121) ... 35 more   回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-22 16:57 soa

    我就是簡單的一個hello程序,返回問候語。
    配置文件為:
    <service name="Hello">
    <parameter name="ServiceClass" locked="xsd:false">
    com.test.hello.Hello
    </parameter>
    <operation name="SayHello">
    <messageReceiver
    class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </operation>
    </service>

    我快要瘋掉了:(((((  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-22 17:06 zhms999

    wsdl?
    org.apache.axis2.rpc.receivers.RPCMessageReceiver

    用了這個axis2服務器是可以自己生成的wsdl的啊.
    為什么這個例子不能自己生成wsdl呢??

    我是初學者,想知道你例子中哪兒介紹了生成wsdl呢?
    我在axis2網站上看了,和你的一樣.是否需要另外生成?
    為什么org.apache.axis2.rpc.receivers.RPCMessageReceiver這種方式axis2就可以自己生成wsdl  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-22 17:09 zhms999

    (3)做到這里就可以打包發布了,有人會問,把我這兩個文件放到一個自己建的文件夾然后打包嗎?我想那樣做可能也可以,但是我推薦還是用這樣一個包結構比較好(由于圖示考到文本框中后顯示空白我只好口頭描述了):
    a.先在D:盤中建一個文件夾AxisDemo
    b.在AxisDemo下面建一個文件夾META-INF,并把MyService.java放在這里
    c.在META-INF下放配置文件services.xml

    請問b項里面應該放MyService.java文件,還是放MyService.class文件.
    ????????????????
    有沒有你的demo提供下載,  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-22 22:27 soa

    我現在只要是打包發布就要拋異常。。。

    我把網上說的配置文件全部都試過了,都不行!!!!

    不知道誰能指點一下  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-23 09:32 soa

    搞定了 呵呵  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-03-23 11:11 冰川

    @zhms999
    .wsdl文件可以由axis里面的org.apache.axis.wsdl.Java2WSDL這個類來生成,Java2WSDL這個命令根據已有的Java類文件生成WSDL文件。
    理論上是放MyService.class文件,但實際應用時放MyService.java文件也行。
    @soa
    呵呵,搞定了?問題是自己搞定的一定很有成就感吧,哈哈。。。
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-03-25 17:13 soa

    我想問問:
    冰川,使用過soap來調用web service嗎?

    我寫好代碼了,但是就拋異常
    Exception in thread "main" [SOAPException: faultCode=SOAP-ENV:Protocol; msg=Unsupported response content type &quot;text/html; charset=utf-8&quot;, must be: &quot;text/xml&quot;. Response was:
    &lt;html&gt;&lt;head&gt;&lt;title&gt;Apache Tomcat/5.5.17 - Error report&lt;/title&gt;&lt;style&gt;&lt;!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--&gt;&lt;/style&gt; &lt;/head&gt;&lt;body&gt;&lt;h1&gt;HTTP Status 500 - &lt;/h1&gt;&lt;HR size=&quot;1&quot; noshade=&quot;noshade&quot;&gt;&lt;p&gt;&lt;b&gt;type&lt;/b&gt; Exception report&lt;/p&gt;&lt;p&gt;&lt;b&gt;message&lt;/b&gt; &lt;u&gt;&lt;/u&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;description&lt;/b&gt; &lt;u&gt;The server encountered an internal error () that prevented it from fulfilling this request.&lt;/u&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;exception&lt;/b&gt; &lt;pre&gt;org.apache.axiom.om.OMException: SOAPEnvelope must contain a body element which is either first or second child element of the SOAPEnvelope.
    org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.getBody(SOAPEnvelopeImpl.java:142)
    org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.addChild(SOAPEnvelopeImpl.java:103)
    org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.getHeader(SOAPEnvelopeImpl.java:82)
    org.apache.axis2.engine.AxisEngine.createFaultMessageContext(AxisEngine.java:183)
    org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:168)
    org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:153)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    &lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;note&lt;/b&gt; &lt;u&gt;The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.&lt;/u&gt;&lt;/p&gt;&lt;HR size=&quot;1&quot; noshade=&quot;noshade&quot;&gt;&lt;h3&gt;Apache Tomcat/5.5.17&lt;/h3&gt;&lt;/body&gt;&lt;/html&gt;
    ]
    at org.apache.soap.rpc.Call.getEnvelopeString(Unknown Source)
    at org.apache.soap.rpc.Call.invoke(Unknown Source)
    at com.test.TClient3.main(TClient3.java:29)   回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-04-02 19:23 herry

    問一下樓主:
    如果每個方法都這樣去寫service.xml,以及每個方法都要寫,那豈不是很費勁.有沒有自動生成的工具?
    以前用axis1.x部署服務的時候,只要構建一個server-config.wsdd部署文件,里面只需要寫類型映射的javabeans,然后axis就可以根據這個wsdd文件生成wsdl文件,里面就包含所有發布的服務接口. axis2中有類似的發布方式嗎?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-04-02 22:02 冰川

    @soa:
    錯誤是說你的服務響應文件的類型是text/html的而不是SOAP所要求的text/xml類型.
    @herry:
    wsdl文件可以用命令來生成,如:
    java2wsdl –cp . -cn [package].StockQuoteService –of ..\wsdl\StockQuoteService.wsdl

    另外,最近很忙,沒有太多時間來照看BLOG,僅提供兩個關于AXIS2的學習連接:
    英文的:http://ws.apache.org/axis2/
    中文的:http://www.ibm.com/developerworks/cn/webservices/
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-04-27 04:07 maser

    我覺的比較別扭,還必須使用工具生成arr文件,而且還必須手動放到WEB-INF\services目錄,難道就不可以,不用打arr包嗎,這點我不是很理解,請兄弟們指正,反正jdk新版本里對WebService支持就簡單多了,用注釋語句就可以啦。
    問題1,在eclipse中,我們難道沒次打包都要自己去拽class和service.xml到
    .arr包中嗎,或者在里面加ant build.xml來代替手工?
    問題2,我們在WEB-INFO/classes目錄下服務文件XXXXservice.class,除了打包到.arr里,放到工程中是不是有浪費空間的嫌疑

    xfire就不這樣,只需配置將服務services.xml放到src\META-INF\xfire\下,同時web.xml就配置一下servlet,就可以啦,不需要打打.arr包,我覺的打.arr包簡直就是多此一舉,最初是怎么設計的?是不是還有什么非常有利的地方?
    當然xfire問題一大堆,建議大家不要用,最嚴重的是目前它僅僅支持到spring1.2.6,如果你的項目中使用了spring2.0以上的版本,那么你幾乎沒法用xfire,除此之外,還有好幾個jar包沖突,我就是沒辦法才來用axis2.0的
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-05-26 22:38 kitty

    各位,有誰知道如何該Axis2 console用戶名和密碼, lz給的Admin,Axis 2無法登陸  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-07-20 14:45 emike

    應該是admin/axis2  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-08-07 15:40 忠巖

    QQ 475903393
    各位,問個問題,我將冰心的程序發布到外網后,會出現以下錯誤
    the host did not accept the connection with timeout 60000 ms
    不知道怎么解決,還請指點,

    再有,axis2工程發布后,點擊服務名稱也會出現
    <error>
    <description>Unable to generate WSDL for this service</description>
    <reason>If you wish Axis2 to automatically generate the WSDL, then please use one of the RPC message receivers for the service(s)/operation(s) in services.xml. If you have added a custom WSDL in the META-INF directory, then please make sure that the name of the service in services.xml (/serviceGroup/service/@name) is the same as in the custom wsdl's service name (/wsdl:definitions/wsdl:service/@name).</reason>
    </error>
    我用java2wsdl 處理后wsdl已放入到META-INF 為什么還會有此問題呢.

    請各位指點指點,謝謝
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2007-11-12 09:26 andrew

    我有問題,axis2到底支持spring2.0嗎?為什么會接續不了spring的配置文件??  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-11-26 11:06 林行天下

    為什么我在.services.xml里面1.org.apache.axis2.rpc.receivers.RPCMessageReceiver:打包發布成功
    2.org.apache.axis2.receivers.RawXMLINOutMessageReceiver:打包發布失敗
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2007-12-13 09:52 milo

    jar cvf MyAxisDemo.aar AxisDemo/.
    這樣的打包命令在我的電腦里面打完的包是錯誤的
    在我的電腦里面是這樣的
    首先進入D:AxisDemo目錄
    然后
    jar cvf MyService.aar .
    后面有一個點  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2008-03-13 09:44 Axis2 初學者

    你的命令應該是
    >[%java_home%]\bin\jar.exe cvf MyService.aar .(必須要點)
    不然提示說找不到jar命令  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2008-03-13 09:50 Axis2 初學者

    @忠巖
    我的做法是把生成的XX.aar文件拷貝至Asix2\WEB-INF\services中,在容器啟動之后,可以動態載入。
    個人感覺wsdl主要是為了生成客戶端存在的,是作為服務器代碼和客戶端代碼的關聯,不知道這樣理解對不對啊。
    java2wsdl 服務端生成wsdl文件
    wsdl2java 由wsdl文件生成客戶端文件  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2008-03-13 09:57 Axis2 初學者

    @冰川
    web services是可以客戶端監聽的嗎?
    個人感覺不是,soap協議是無狀態的協議,相當于http,不能理解為什么客戶端能監聽?
    我的理解是客戶端發送請求給服務器端,服務器可以同步或異步響應,客戶端在接到響應后,可以同步或異步處理!
    請教!  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布![未登錄] 2008-03-24 20:43 chen

    nested exception is: org.apache.axis2.deployment.DeploymentException: services.xml not found for service


    我也碰到了打包成aar文件之后,部署時出現問題,是不是因為沒有打包成功啊?  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2008-03-27 22:02 juanjuan

    打包成功,發布出現This Web axisService has deployment faults 哪里錯了啊  回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2008-04-16 15:43 somber

    @soa
    請問你怎么搞定的?我發布的服務遇到了和一樣的拋出異常
    請指教!!
      回復  更多評論   

    # re: 【原創】關于Web Services技術中的Axis2的使用及Web服務的發布! 2011-05-05 17:19 11

    有一個webservice類,這個類調用了其他類,我想用services.xml發布這個webservice類,它引用的其他類放在哪里?  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2006年6月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導航

    統計

    常用鏈接

    留言簿(14)

    隨筆檔案

    BlogJava的幫助

    朋友的博客

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    快樂工作—享受生活
    主站蜘蛛池模板: 精品97国产免费人成视频| 亚洲日韩乱码中文无码蜜桃| 免费无码又黄又爽又刺激| 日本一区免费电影| 日韩亚洲欧洲在线com91tv| 精品亚洲AV无码一区二区| 免费无遮挡无码视频在线观看| 久久久久国产免费| 亚洲国产一成久久精品国产成人综合| 亚洲综合视频在线| 一级毛片在线完整免费观看| 亚欧色视频在线观看免费| 亚洲伦乱亚洲h视频| jizz免费一区二区三区| 国内自产少妇自拍区免费| 亚洲AV无码专区电影在线观看| 成人亚洲国产精品久久| AV大片在线无码永久免费| 亚洲成av人在线视| 日韩免费高清大片在线| 伊人久久亚洲综合| 国产成人综合亚洲绿色| 青青青国产在线观看免费网站| 亚洲国产精品高清久久久| 久99久精品免费视频热77| 亚洲日韩中文字幕| 女人被男人桶得好爽免费视频| 婷婷亚洲综合五月天小说在线| 国产a v无码专区亚洲av| 美女被免费网站视频在线| 午夜成人免费视频| 亚洲精品日韩一区二区小说| 免费大片黄在线观看yw| 久久无码av亚洲精品色午夜| 青青草国产免费久久久下载| 永久免费精品影视网站| 女人18特级一级毛片免费视频| 狠狠色伊人亚洲综合网站色| 亚色九九九全国免费视频| 国产精品亚洲专区一区| 久久亚洲高清观看|