У нас есть этот бит кода, создающий сообщение 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><Message
MessageType='FindCaseByCaseNumber' NodeID='1' ReferenceNumber='1'
UserID='1'
Source='APIMessage'><CaseNumber>T-4-CV-2011-004617</CaseNumber>
</Message></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><Message
MessageType="FindCaseByCaseNumber" NodeID="1"
ReferenceNumber="1" UserID="1" Source="
APIMessage">
<CaseNumber>T-4-CV-2011-004617</CaseNumber>
</Message></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 вместо строчной буквы o, которая, в конечном счете, была проблемой, а не экранирующий символ в конце концов!