博學而篤志,好問而近思

          我的評論

          共5頁: 上一頁 1 2 3 4 5 
          好東西,支持!不斷支持中!
          還好不是我寫的,別人寫的,呵呵!
          @Shooper.Java:
          謝謝,我想是這樣的,不過如果不在Axis2下發布就不需要拷到Webapps下了。
          本人今天在MSN上看到此貼,覺得還有點意思。

          如果你覺得里面講的像是在說自己的,請舉手!
          難道是這里缺乏高手嗎?
          我想不會的,這里可是blogjava-專注于java技術的社區啊!
          @happy:
          我這段時間在忙項目開發,沒有時間來回答你們的問題
          抱歉!這個錯誤是MyService.aar里的配置文件寫錯了,請檢查!
          你再按我首貼的步驟試試,我測試過整個過程的,最后生成MyAxisDemo.arr
          文件再發布。

          再次希望,有高人路過時幫我解決一下大家的問題,不然我寫這篇討論貼
          就變成我唱獨角戲了,此貼也就失去了意義
          再次誠心邀請有使用過AXIS2的同仁一起來參加我們的討論!
          @嘎崩豆:
          這個...Java2WSDL工具有是有,不過一般不直接用,而是在Eclipse中可以用到這個功能,我沒具體用過,希望遇到高人給你解答

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

          下到本地接壓縮后再打開這個本地路徑看看(下面是目錄結構)
          xdocs\tools\1_0\CodegenToolReference.html
          @shrimp:
          你還可以看看你上樓的那篇回貼,是客戶端調用Web Services的代碼例子。
          (即 2006-06-29 11:22 | 冰川 那篇帖子)

          另外:大家還有更好的客戶端調用Web Services代碼例子也請貼到這邊來啊!
          @shrimp:
          哈哈,是錯了,謝謝提出來,我實現后語句有的不記得的只好考了userguide里的語句,結果出了這種BUG,哈哈哈
          2.直接考過去也可以的,看你的Tomcat是什么版本,可以自動發布的就行,
          我沒修改前發布那段寫的就是用考的后來改了,這次又要改咯!

          @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的知識(:
          @小青蛙:
          樓主在這里謝謝你的支持!
          @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去確認一下吧
          上帝會保佑你的,阿門~~~

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

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

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

          以上回復中的代碼由于復制過來后忘了排版,造成了閱讀不方便,我很抱歉。
          請大家把代碼自行復制,然后排一下版再看吧
          @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的使用。

          @shrimp:
          1.我的可以看到WSDL文件啊,你那里報了什么錯嗎?
          2.異步傳輸模式我還沒用到,下次去看看
          3.客戶端應該是監聽的
          我真心的希望有更多的朋友在這里得到收獲!
          共5頁: 上一頁 1 2 3 4 5 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(14)

          隨筆檔案

          BlogJava的幫助

          朋友的博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          快樂工作—享受生活
          主站蜘蛛池模板: 米泉市| 县级市| 和平县| 澳门| 新干县| 安仁县| 大洼县| 临海市| 吴旗县| 木里| 固安县| 宣武区| 涡阳县| 怀远县| 遂川县| 宿迁市| 深泽县| 特克斯县| 寻甸| 兴业县| 舒城县| 凤翔县| 卢氏县| 岫岩| 聊城市| 新闻| 太和县| 西盟| 海门市| 泸西县| 崇文区| 漠河县| 咸丰县| 兴义市| 夏河县| 华亭县| 乌兰察布市| 宁海县| 新乡县| 屏南县| 青田县|