2011-05-05 46 views
0

我們的代碼創建SAAJ SOAP消息中的XML消息,該位:在SAAJ SOAP動作轉義字符

OdysseyMessageXML.addTextNode("<Message 
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1' 
UserID='1' 
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>" 
); 

當消息完整,它看起來像這樣:

<SOAP-ENV:Envelope 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:tyl="http://www.tylertech.com/"><SOAP-ENV:Header/> 
<SOAP-ENV:Body><tyl:OdysseyMsgExecution><tyl:OdysseyMessageXML>&lt;Message 
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1' 
UserID='1' 
Source='APIMessage'&gt;&lt;CaseNumber&gt;T-4-CV-2011-004617&lt;/CaseNumber&gt; 
&lt;/Message&gt;</tyl:OdysseyMessageXML> 
<tyl:siteKey>NMODYSSEYMETRO</tyl:siteKey> 
</tyl:OdysseyMsgExecution></SOAP-ENV:Body></SOAP-ENV:Envelope> 

通知'FindCaseByCaseNumber和NodeID周圍的標記不會被轉義。我需要做什麼做的,得到的結果是這樣的:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:tyl="http://www.tylertech.com/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <tyl:OdysseyMsgExecution> 
     <tyl:odysseyMessageXML>&lt;Message 
MessageType=&quot;FindCaseByCaseNumber&quot; NodeID=&quot;1&quot; 
ReferenceNumber=&quot;1&quot; UserID=&quot;1&quot; Source=&quot; 
APIMessage&quot;&gt; 
&lt;CaseNumber&gt;T-4-CV-2011-004617&lt;/CaseNumber&gt; 
    &lt;/Message&gt;</tyl:odysseyMessageXML> 
     <tyl:siteKey> NMODYSSEYMETRO </tyl:siteKey> 
     </tyl:OdysseyMsgExecution> 
    </soapenv:Body> 
</soapenv:Envelope> 

周圍FindCaseByCaseNumber

的"

誰能告訴我我們在做什麼錯誤?我們曾嘗試在代碼「」」和‘’」的addTextNode部分,但在獲得報價逃脫一直不成功

感謝 張國榮

編輯:!

在本節代碼當我們創建消息:

OdysseyMessageXML.addTextNode("<Message 
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1' 
UserID='1' 
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>" 
); 

,我們需要的是(看到周圍每個值雙引號):

OdysseyMessageXML.addTextNode("<Message 
MessageType="FindCaseByCaseNumber" NodeID="1" ReferenceNumber="1" 
UserID="1" 
Source="APIMessage"><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>" 
); 

不幸的是,這是無效的java代碼。 。通過將另一個「在FindCaseByCaseNumber它結束的字符串,我們試圖把2個3雙引號,以獲得一個雙引號在我們的最終消息逃脫

更新: 看來是接受API我們要求是大小寫敏感的,我們有一個大寫的O而不是小寫Ø這是最終的問題,而不是性格終究逃脫

回答

0

你可以用一個反斜槓轉義字符串中的引號:

OdysseyMessageXML.addTextNode("<Message 
MessageType=\"FindCaseByCaseNumber\" NodeID=\"1\" ReferenceNumber=\"1\" 
UserID=\"1\" 
Source=\"APIMessage\"><CaseNumber>T-4-CV-2011-004617</CaseNumber></Message>" 
); 
+0

我會接受這個作爲原始問題的正確答案,即使我們在野外追逐! – Leslie 2011-05-06 15:15:09