1. 程式人生 > >SOAP訊息的傳遞

SOAP訊息的傳遞

上一篇說了SOAP訊息的建立,那麼建立好了的SOAP訊息要怎麼傳送給服務端呢?

public class SoapTest {

    private String wsdlUri = "http://localhost:9999/ns?wsdl";
    private String ns = "http://lenve.server/";
    @Test
    public void test3() {
        try {
            // 1.建立服務Service
            URL url = new URL(wsdlUri);
            QName sname = new QName(ns, "MyServerImplService"
); Service service = Service.create(url, sname); // 2.建立Dispatch Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns, "MyServerImplPort"), SOAPMessage.class, Service.Mode.MESSAGE); //3.建立SOAPMessage SOAPMessage msg = MessageFactory.newInstance
().createMessage(); SOAPBody body = msg.getSOAPPart().getEnvelope().getBody(); //4.建立QName來指定訊息中傳遞的資料 QName ename = new QName(ns,"add","ns"); SOAPBodyElement ele = body.addBodyElement(ename); ele.addChildElement("a").setValue("3"); ele.addChildElement
("b").setValue("6"); //5.通過Dispatch傳遞訊息,同時收到響應訊息 SOAPMessage response = dispatch.invoke(msg); response.writeTo(System.out); Document doc = response.getSOAPPart().getEnvelope().getBody().extractContentAsDocument(); String str = doc.getElementsByTagName("addResult").item(0).getTextContent(); System.out.println(); System.out.println(str); } catch (SOAPException | IOException e) { e.printStackTrace(); } } }

客戶端輸出:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><S:Body><ns2:addResponse xmlns:ns2="http://lenve.server/"><addResult>9</addResult></ns2:addResponse></S:Body></S:Envelope>
9

成功呼叫了服務端程式。程式碼中先定義了兩個變數,第一個是地址,這個不用多解釋,第二個是名稱空間,這是從地址所表示的頁面中得到的。這裡寫圖片描述,在建立dispatch是還用到了MyServerImplPort,這個也是從文件中獲得,在文件的結尾。
這裡寫圖片描述

相關推薦

soap訊息傳遞和處理(基於Message和Payload的方式)

package com.npf.client; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; imp

使用SOAP的XML訊息傳遞

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

SOAP訊息傳遞

上一篇說了SOAP訊息的建立,那麼建立好了的SOAP訊息要怎麼傳送給服務端呢? public class SoapTest { private String wsdlUri = "htt

Webservice06---SOAP訊息傳遞和處理(基於Message方式)

使用Message方式傳遞和處理SOAP訊息。 1.1、建立服務 private String wsdlUrlStr = "http://localhost:9999/ns?wsdl"; private String targetNameSpace

SOAP訊息傳遞和處理(PAYLOAD方式)

/** * 訊息的傳遞和處理(PAYLOAD) * 通過負載來傳遞 */ @Test public void test03() { try { //1.建立服務(Service) URL url = new URL(wsdlUrl); QName sNa

soap訊息分析和soap訊息傳遞和處理(一)

WebService傳遞的時候實際上是傳遞一個SOAPMessage,我們來探究一下SOAPMessage的組成。 SOAPMessage由一個個的SOAP塊組成,這些SOAPPart被封裝到一個SOAPEnvelope(信封)中,信封中包括head和body。我們可以自

php中Redis的應用--訊息傳遞

訊息傳遞這一應用廣泛存在於各個網站中,這個功能也是一個網站必不可少的。本文主要介紹了php中Redis的應用--訊息傳遞。 閱讀目錄 1、摘要 2、實現方法 3、一對一訊息傳遞 4、多對多訊息傳遞 1、摘要 訊息傳遞這一應用廣泛存在於各個網站中,這個功能也是一個網站必不可

使用MPI訊息傳遞實現hello world的順序輸出

MPI:hello world順序輸出 在跑MPI並行程式時,我們不知道哪個核心前進得快,故而在沒有其他控制的條件下,誰先執行同一條程式碼,是不可知的。 比如說,對於一個輸出“hello world”的程式,如果採用多個節點來跑,列印順序是不定的。下面是一個hellow程式: /

iOS總結-Runtime篇之類的訊息傳遞

訊息傳遞的核心機制就是objc_msgSend id objc_msgSend(receiver self, selector _cmd, arg1,arg2,...) self和_cmd是隱藏引數,編譯器插入,self指向訊息的接受者  _cmd是SEL型別 當向一般物件傳送

鳥哥的Linux私房菜讀書筆記--主機上的使用者訊息傳遞

1、查詢使用者 之前學習過的id和finger都可以以進行查詢使用者的相關資料,最簡單的還可以使用last檢視 使用命令:w    命令:who    命令  lastlog    #查詢賬號的登入情況 2、使用者

html5 postMessage解決跨域、跨視窗訊息傳遞簡單案例

方法解釋: postMessage()方法允許來自不同源的指令碼採用非同步方式進行有限的通訊,可以實現跨文字檔、多視窗、跨域訊息傳遞。 postMessage(data,origin)方法接受兩個引數: 1.data:你需要傳遞的訊息,訊息傳遞的格式有一定要求:引數可以是JavaScript

Android 訊息傳遞之Intent和IntentFilter的匹配規則

1.Intent概述及作用 Intent 是一個訊息傳遞物件,您可以使用它從其他應用元件請求操作。 詳見官方文件 主要功能如下: 啟動Activity: 通過將 Intent 傳遞給 startActivity(),您可以啟動新的 Activity 例項。I

vc中用SendMessage自定義訊息傳遞

SendMessage的函式原型為 LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); 第一個引數hWnd,是訊息傳遞的目標視窗或執行緒的控制代碼 第二個引數Msg,是訊息的類別,可以是一些系統訊

android hxgbus 待tag的訊息傳遞

hxgbus 引入方式 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementat

MFC的檔案開啟框、讀取檔案內容、訊息傳遞、多執行緒多串列埠的使用

最近做的專案簡單總結一下,因為對MFC不是很熟,所以簡單記錄一下。 順便發現可以在VS2017編譯的工程,放到VS2012反而有很多編譯無法通過。 1、MFC的檔案開啟框(多位元組) char* cFileName=NULL; //儲存檔案 ​ void CToolD

html5 postMessage解決跨域、跨視窗訊息傳遞

一些麻煩事兒 平時做web開發的時候關於訊息傳遞,除了客戶端與伺服器傳值還有幾個經常會遇到的問題 1.頁面和其開啟的新視窗的資料傳遞 2.多視窗之間訊息傳遞 3.頁面與巢狀的iframe訊息傳遞 4.上面三個問題的跨域資料傳遞 postMessage()

SpringMVC框架Java Web專案中訊息傳遞的流程

這是一個servlet專案,功能是使用者填寫表單,然後後臺渲染頁面後把表單內容返回給使用者。通過這個簡單的例子理解下springmvc框架的工作原理。 springmvc概念架構 springmvc可

Python GUI程式設計之訊息傳遞機制&使用者登入

PythonGUI程式設計之-訊息傳遞機制及簡單的使用者登入 訊息機制 1.訊息的傳遞機制 自動發出事件/訊息 訊息由系統負責傳送到佇列 有相關元件進行繫結/設定 後端自動選擇感興趣的事件並作出相應的

LINUX中的訊息傳遞函式分析

                         

MIC、UIPI、Explorer.exe、Windows訊息傳遞的理解 ,附具體案例說明

MIC: Message Integrity Check,中文全稱:訊息完整性檢查 是Windows7新引人的概念,Windows XP、Windows Server 2003上面沒有,作用:給Windows的程序做一個安全物件標記,通過該標記來判斷程序的安全訪問許可權。