簡體   English   中英

不能獲取 <wsse:Password> esb消息中打印出的元素

[英]Cannot get <wsse:Password> element printed out in the esb message

我正在嘗試使用smooks操作和freemarker誘因構建一個包含多個名稱空間的SOAP xml請求。 這是我在jboss-esb.xml中的代碼片段,smooks-upgraded-right-now-query.xml是我向Web服務構建SOAP客戶端請求的模板文件。

Jboss-esb.xml

<action class="org.jboss.soa.esb.smooks.SmooksAction" name="create-right-now-details-query">
<property name="smooksConfig" value="/smooks/smooks-upgraded-right-now-query.xml"/>
<property name="resultType" value="STRING" />
</action>
<action class="org.jboss.soa.esb.actions.SystemPrintln" name="printMessageRequest">
<property name="message" value="GetInfoFromRightNow before request"/>
<property name="printfull" value="true"/>
</action>

以下是smooks-upgrade-right-now-query.xml

抽煙升級正確的現在查詢.xml

<?xml version="1.0" encoding="UTF-8"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
    xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
    <params>
        <param name="inputType">input.java</param>
        <param name="stream.filter.type">SAX</param>
        <param name="input.java" type="input.type.actived">com.ws.custom.Update</param>
    </params>

<ftl:freemarker applyOnElement="#document"> 

<ftl:template><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v11="urn:basews.customws.com/v1_2" xmlns:v12="urn:objectws.customws.com/v1_2">
    <soapenv:Header>
      <ns7:ClientInfoHeader soapenv:mustUnderstand="0" xmlns:ns7="urn:messages.ws.customws.com/v1_2">
        <ns7:AppID>Appid01</ns7:AppID>
      </ns7:ClientInfoHeader>
      <wsse:Security mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:UsernameToken>
            <wsse:Username>user</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
   </soapenv:Header>
</soapenv:Envelope>]]></ftl:template>

    <param name="rootElementName">Envelope</param>
    <param name="messageType">XML</param>

</ftl:freemarker>


<resource-config selector="#document">
<resource>org.milyn.delivery.DomModelCreator</resource>
</resource-config>

</smooks-resource-list>

如您在上面看到的,我只是在構建一個包含純文本的SOAP標頭。 我沒有從動作管道中的先前消息中讀取任何輸入。

當且僅當從上述模板中刪除了<wsse:Password>元素時,我才能使用SystemPrintln操作打印此SOAP標頭。 即使我使用xslt模板,情況也是如此。 我不知道smooks解析器是否誤解了此密碼元素。

我在日志中看到的唯一有用的消息是[org.milyn.delivery.AbstractParser] (pool-96-thread-1:) XMLReader property 'http://xml.org/sax/properties/lexical-handler' not recognized by XMLReader 'org.milyn.delivery.java.XStreamXMLReader'.

任何線索表示贊賞。

在這種情況下,似乎可以將log4j配置為根據消息內的表達式(例如“ Password”)省略消息。

這是我想到記錄器為何丟棄我的消息的唯一原因。

請閱讀以下鏈接以獲取更多信息。

http://pic.dhe.ibm.com/infocenter/sfsf/v9r1/index.jsp?topic=%2Fcom.ibm.help.custom.basics.doc%2FCstm_mask_info_using_log4j.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM