第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何從 Camel 中的交換對(duì)象中檢索 SOAP 標(biāo)頭?

如何從 Camel 中的交換對(duì)象中檢索 SOAP 標(biāo)頭?

精慕HU 2022-05-21 20:44:15
我們公開了一個(gè) Apache camel-cxf 網(wǎng)絡(luò)服務(wù)。使用駱駝處理器,我們?cè)噲D從soapUi客戶端獲取我們?cè)趕oap請(qǐng)求中傳遞的soap標(biāo)頭。交換對(duì)象包含肥皂消息的主體(不是肥皂頭)。在 exchange.getIn.getHeader() 中,我們只獲取我們傳遞的 HTTP 標(biāo)頭,而不是 SOAP 標(biāo)頭。如何從 Camel 中的交換對(duì)象中檢索 SOAP 標(biāo)頭?以下是通過的soap標(biāo)頭:<soapenv:Header>  <ns1:info xmlns:ns1="http://www.w3schools.com/transaction/">    <ns1:TransactionID>01</ns1:TransactionID>    <ns1:AppUserID>52</ns1:AppUserID>    <ns1:AppPass>ab</ns1:AppPass>  </ns1:info></soapenv:Header>我們嘗試使用,交換.getIn().getHeaders();exchange.getIn().getHeader(“TransactionID”);但是,它無法提取發(fā)送的 SOAP 標(biāo)頭。如何在有效負(fù)載模式下添加自定義肥皂標(biāo)題?
查看完整描述

2 回答

?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果 cxf 端點(diǎn)配置為在 DataFormat.PAYLOAD 中工作,則:


 .process(exchange -> {

                CxfPayload body = exchange.getIn().getBody(CxfPayload.class);

                for (Object header : body.getHeaders()) {

                    SoapHeader soapHeader = (SoapHeader) header;

                    org.w3c.dom.Element element = (Element) soapHeader.getObject();

                    //parse elements

                }

            });

如果在原始模式下,只需使用 xpath 讀取輸入流并將數(shù)據(jù)解析為 xml


升級(jí)版:


示例路線:


CxfEndpoint endpoint = new CxfEndpoint();

    endpoint.setDataFormat(DataFormat.PAYLOAD);

    endpoint.setWsdlURL("etc/Proxy.wsdl");

    endpoint.setAddress("http://localhost:8089/wsservice/");

    getContext().getRegistry().bind("cxfend", endpoint);

    from("cxf:bean:cxfend")

            .process(exchange -> {

                CxfPayload body = exchange.getIn().getBody(CxfPayload.class);

                for (Object header : body.getHeaders()) {

                    SoapHeader soapHeader = (SoapHeader) header;

                    org.w3c.dom.Element element = (Element) soapHeader.getObject();

                    Element transactionID = (Element) element.getElementsByTagName("ns1:TransactionID").item(0);

                    log.info("Header TransactionID with value:{}", transactionID.getTextContent());

                }

            });

輸出:


2020-03-03 11:43:03,327 [main           ] INFO  Server                             

- jetty-9.4.21.v20190926; built: 2019-09-26T16:41:09.154Z; git:     

72970db61a2904371e1218a95a3bef5d79788c33; jvm 1.8.0_232-b18

2020-03-03 11:43:03,377 [main           ] INFO  AbstractConnector              

- Started ServerConnector@b016b4e{HTTP/1.1,[http/1.1]}{localhost:8089}

2020-03-03 11:43:03,377 [main           ] INFO  Server                         

- Started @3403ms

2020-03-03 11:43:03,400 [main           ] INFO  ContextHandler                 

- Started o.e.j.s.h.ContextHandler@1b15f922{/wsservice,null,AVAILABLE}

2020-03-03 11:43:03,400 [main           ] INFO  DefaultCamelContext            

- Route: route1 started and consuming from: cxf://bean:cxfend

2020-03-03 11:43:03,406 [main           ] INFO  DefaultCamelContext            

- Total 1 routes, of which 1 are started

2020-03-03 11:43:03,408 [main           ] INFO  DefaultCamelContext            

- Apache Camel 3.0.1 (CamelContext: camel-1) started in 1.953 seconds

2020-03-03 11:43:10,068 [tp1299661385-22] INFO  TypeUtil                       

- JVM Runtime does not support Modules

2020-03-03 11:43:10,196 [tp1299661385-22] INFO  RouteTest                      

- Header TransactionID with value:01


查看完整回答
反對(duì) 回復(fù) 2022-05-21
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

那是我的解決方案:


    List<SoapHeader> soapHeaders = (List)exchange.getIn().getHeader("org.apache.cxf.headers.Header.list");

    Element header = ((Element)soapHeaders.get(0).getObject());

    String eventType = (String)header.getElementsByTagName("TransactionID").item(0).getTextContent();

    exchange.getIn().setHeader("TYPE_EVENT",eventType);


查看完整回答
反對(duì) 回復(fù) 2022-05-21
  • 2 回答
  • 0 關(guān)注
  • 98 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)