2011-05-05 42 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