1. 程式人生 > >Axis2用法——soap訊息攜帶訊息頭

Axis2用法——soap訊息攜帶訊息頭

1、訊息頭定義

一般soap訊息中,訊息體是攜帶訊息的核心內容;訊息頭中的欄位,多數用於校驗。定義訊息頭,就相當於定義一個bean物件。本例中,在上一篇的繼承上,為訊息增加訊息頭,其中訊息頭核心內容包括三個欄位:serviceId,servPassWord和timeStamp。原始碼如下:
  1. package com.yht.msg.header;  
  2. /** 
  3.  * 定義訊息頭中包含哪些內容的bean。 
  4.  * @author Administrator 
  5.  * 
  6.  */
  7. publicclass AttachHeader   
  8. {  
  9.     /** 
  10.      * 訊息節點標籤。
     
  11.      */
  12.     publicstaticfinal String NODEFLAG = "tns";  
  13.     /** 
  14.      * 訊息頭標籤。 
  15.      */
  16.     publicstaticfinal String HEADFLAG = "RequestHeader";  
  17.     /** 
  18.      * 名稱空間。 
  19.      */
  20.     publicstaticfinal String NAMESPACE = "http://com.yht.msg";  
  21.     /** 
  22.      * 時間戳標籤。 
  23.      */
  24.     publicstaticfinal
     String TIMESTAMP = "timeStamp";  
  25.     /** 
  26.      * 業務編號標籤。 
  27.      */
  28.     publicstaticfinal String SERVICEID = "serviceId";  
  29.     /** 
  30.      * 業務對於的校驗密碼標籤。 
  31.      */
  32.     publicstaticfinal String SERVPASSWORD = "servPassWord";  
  33.     /** 
  34.      * 時間戳。 
  35.      */
  36.     private String timeStamp;  
  37.     /** 
  38.      * 業務編號。 
  39.      */
  40.     private String serviceId;  
  41.     /** 
  42.      * 業務對於的校驗密碼。 
  43.      */
  44.     private String servPassWord;  
  45.     /** 
  46.      * 獲取時間戳。 
  47.      * @return 時間戳。 
  48.      */
  49.     public String getTimeStamp()   
  50.     {  
  51.         return timeStamp;  
  52.     }  
  53.     /** 
  54.      * 設定時間戳。 
  55.      * @param timeStamp 時間戳。 
  56.      */
  57.     publicvoid setTimeStamp(String timeStamp)   
  58.     {  
  59.         this.timeStamp = timeStamp;  
  60.     }  
  61.     /** 
  62.      * 獲取業務編號。 
  63.      * @return 業務編號。 
  64.      */
  65.     public String getServiceId()   
  66.     {  
  67.         return serviceId;  
  68.     }  
  69.     /** 
  70.      * 設定業務編號。 
  71.      * @param serviceId 業務編號。 
  72.      */
  73.     publicvoid setServiceId(String serviceId)   
  74.     {  
  75.         this.serviceId = serviceId;  
  76.     }  
  77.     /** 
  78.      * 獲取校驗密碼。 
  79.      * @return 校驗密碼。 
  80.      */
  81.     public String getServPassWord()   
  82.     {  
  83.         return servPassWord;  
  84.     }  
  85.     /** 
  86.      * 設定校驗密碼。 
  87.      * @param servPassWord 校驗密碼。 
  88.      */
  89.     publicvoid setServPassWord(String servPassWord)   
  90.     {  
  91.         this.servPassWord = servPassWord;  
  92.     }  
  93. }  

2、打包與解析訊息頭方法

訊息頭中欄位定義好了,那麼對於demo作為:客戶端,傳送出去的訊息攜帶訊息頭,需要一個大包訊息頭的方法;服務端,接受別處來的訊息,需要一個解析訊息頭的方法。這重新定義一個類:DealHeader繼承訊息頭定義的類AttachHeader。該類中,有兩個方法:packSoapHeader和parseSoapHeader。原始碼如下:
  1. package com.yht.msg.header;  
  2. import java.util.Iterator;  
  3. import org.apache.axiom.om.OMAbstractFactory;  
  4. import org.apache.axiom.om.OMElement;  
  5. import org.apache.axiom.om.OMFactory;  
  6. import org.apache.axiom.om.OMNamespace;  
  7. import org.apache.axiom.soap.SOAPFactory;  
  8. import org.apache.axiom.soap.SOAPHeader;  
  9. import org.apache.axiom.soap.SOAPHeaderBlock;  
  10. import org.apache.axis2.client.ServiceClient;  
  11. /** 
  12.  * 提供上下行訊息中,處理訊息頭的方法。 
  13.  * 作為服務端,需要解析訊息中的訊息頭;作為客戶端,需要在訊息頭中加入訊息頭。 
  14.  * @author Administrator 
  15.  * 
  16.  */
  17. publicclass DealHeader extends AttachHeader  
  18. {  
  19.     /** 
  20.      * 打包訊息頭。將設定到AttachHeader中的各欄位的內容,打包到訊息中傳送出去。 
  21. 相關推薦

    Axis2用法(3)soap訊息攜帶訊息

    1、訊息頭定義 一般soap訊息中,訊息體是攜帶訊息的核心內容;訊息頭中的欄位,多數用於校驗。定義訊息頭,就相當於定義一個bean物件。本例中,在上一篇的繼承上,為訊息增加訊息頭,其中訊息頭核心內容包括三個欄位:serviceId,servPassWord和timeStam

    Axis2用法——soap訊息攜帶訊息

    1、訊息頭定義 一般soap訊息中,訊息體是攜帶訊息的核心內容;訊息頭中的欄位,多數用於校驗。定義訊息頭,就相當於定義一個bean物件。本例中,在上一篇的繼承上,為訊息增加訊息頭,其中訊息頭核心內容包括三個欄位:serviceId,servPassWord和ti

    使用SOAP的XML訊息傳遞

    (3) Web 服務負責處理請求資訊並生成一個響應。該響應也是一條SOAP訊息。響應的SOAP訊息被提供給SOAP執行時,其目的地是服務請求者。在HTTP上的同步請求/響應的情況中,聯網協議的底層請求/響應本質用於實現訊息傳遞的請求/響應。SOAP執行時將SOAP訊息響應傳送到網路上的服務請求者。

    [Visual Studio C++] [MFC] 新增使用者自定義訊息訊息響應函式講解

    一、前言           本文介紹 兩種方法 新增使用者自定義訊息及訊息響應函式。  第一種,使用者手動新增兩個檔案((.h)和 (.cpp))的內容。  第二種,利用 MFC 的整合功能,自動新增。(推薦

    Java開發公眾號系列教程(四):公眾號訊息推送|事件訊息|模板訊息應用

    今天分享一下公眾號推送模板訊息的開發案例。應用場景:使用者在公眾號上進行了一些操作後,公眾號自動向使用者推送相關的模板訊息,常見的比如使用者在公眾號付款後會收到商家的付款訊息提醒。接下來通過筆者在測試賬戶上的開發案例,效果如下:         &nb

    mq訊息佇列 訊息佇列複習精講

    訊息佇列複習精講 2018年11月30日 20:20:56 wonderful_life_mrchi 閱讀數:2 <spa

    MSMQ 訊息佇列、監聽MSMQ訊息訊息掃描

    namespace FSMP.PTS.MSMQ { public class MSMQHelper     {         ///

    Python 訊息佇列rabbitmq使用之 更加細緻的 有選擇的 釋出訊息/接收訊息

    1、釋出端程式碼 # new_topic_p.py import pika import sys connection = pika.BlockingConnection(pika.Connec

    (六)RabbitMQ訊息佇列-訊息任務分發與訊息ACK確認機制(PHP版)

    在前面一章介紹了在PHP中如何使用RabbitMQ,至此入門的的部分就完成了,我們內心中一定還有很多疑問:如果多個消費者消費同一個佇列怎麼辦?如果這幾個消費者分任務的權重不同怎麼辦?怎麼把同一個佇列不同級別的任務分發給不同的消費者?如果消費者異常離線怎麼辦?不要著急,後面將慢慢解開面紗。我們

    [C++][Visual Studio] [MFC] 新增使用者自定義訊息訊息響應函式講解

    一. 在對應類的標頭檔案中自定義訊息。          程式碼: #define WM_MyMessage  WM_USER+100            說明:                             MFC自有的訊息都是在WM_USER內的,所以

    JMS介紹+訊息組成+訊息型別+體系架構+模型+ActiveMQ演示

    1JMS JMS:Java訊息服務(Java Message Service)應用程式介面。 是一面向訊息中介軟體(MOM)的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行非同步通訊。Java訊息服務平臺無關,絕大多數MOM提供商都對JMS提供支援。 JMS與

    (Windows程式設計)Windows的訊息機制(訊息的結構、型別)

           Windows應用程式是以訊息為基礎、以事件為驅動的應用程式。當應用程式在執行時,會不斷地等待作業系統傳送給自身的訊息(while迴圈),然後根據不同的訊息進行相應的處理。這裡的訊息實際

    小程式和公眾號訊息統一訊息傳送

    話不多說直接上程式碼 我這裡做的小程式的訊息推送 小程式繫結的微信服務號 通過服務號的訊息模板給小程式和服務號推送訊息 歡迎大家的指導意見 這個連結是微信的官方文件可以參閱 就是 錯誤碼有點少了 https://developers.weixin.qq.com/miniprogram/dev/a

    07 幾百萬訊息訊息佇列裡積壓了幾個小時如何解決?

    目錄   1、面試題 2、面試官心裡分析 3、面試題分析 (1)大量訊息在mq裡積壓了幾個小時了還沒解決 (2)這裡我們假設再來第二個坑 (3)然後我們再來假設第三個坑 1、面試題 如何解決訊息佇列的延時以及過期失效問題?訊息佇列滿了以後該怎麼處理?

    微信公眾號如何無限制的定向推送訊息--模板訊息的應用

    微信公眾號如何無限制的定向推送訊息–模板訊息的應用 最近開發的OA平臺有一個需求:將待辦訊息推送到微信公眾號的指定使用者。但是為了避免使用者受到垃圾訊息的騷擾,微信對相關的介面做了非常嚴格的限制。 查閱開發文件,公眾號主動推送訊息有三種介面: 群發訊息

    angular+記錄訊息+搜尋訊息+敏感字元過濾

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <s

    訊息訊息處理之訊息迴圈

     POINT   pt;  // 訊息放入訊息佇列時的滑鼠座標 } MSG, *PMSG;   上述結構中的主訊息表明了訊息的型別,例如,是鍵盤訊息還是滑鼠訊息等,附訊息的含義則依賴於主訊息值,例如,如果主訊息是鍵盤訊息,那麼附訊息中則儲存了是鍵盤的哪個具體鍵的資訊。 事實上,GetMessage函式還

    安卓 handler的使用 傳送訊息 , 接收訊息(做相應的操作)

    建立handler private final Handler handler=new Handler(){ public void handleMessage(Message msg) {

    解決mq訊息一致性-訊息中介軟體(一)

    定義:產生訊息的業務動作和訊息傳送的一致。 如果業務動作執行成功了,那麼這個動作產生的訊息一定要傳送出去。另一方面,如果這個業務沒有發生或者失敗,就不應該把訊息傳送出去。 執行具體流程 業務處理應用先把訊息傳送給訊息中介軟體,標記訊息狀態為待處理 訊息中

    Axis2用法(1)JAVA2WSDL和WSDL2JAVA

    1、Axis2簡介 Web Service是現在最適合實現SOA的技術,而Axis2是實現Web Service的一種技術框架。Axis2提供了較多的工具以便開發者使用,比如:java2wsdl和wsdl2java。深入使用Axis2框架前,說明下java2wsdl和wsd