创建SAAJ对象模型时遇到问题

use*_*587 5 java jquery jquery-ui html-escape-characters saaj

我试图将jquery中的SOAP请求发送给第三方,但始终收到此错误:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Problems creating SAAJ object model</faultstring></soap:Fault></soap:Body></soap:Envelope>

我这样做的方法是将令牌传递给另一个函数,该函数基于这些令牌创建SOAP请求。令牌之一是类似这样的HTML字符串:

<tr><td width="2" bgcolor="#ffffff"><\/td><td width="1" bgcolor="#d8dbe3"><\/td><td width="2" bgcolor="#ffffff"><\/td><td width="15" bgcolor="#f5f6f8"><\/td><td width="535" bgcolor="#f5f6f8"><table width="535" cellspacing="0" cellpadding="0" border="0" bgcolor="#f5f6f8"><tr><td width="80"><table width="80" height="96" bgcolor="#999999" cellspacing="0" cellpadding="0" border="0" align="center"><tr><td width="80" height="1" colspan="3"><\/td><\/tr><tr><td width="1" bgcolor="#999999"><\/td>....
Run Code Online (Sandbox Code Playgroud)

每当我添加此令牌时,SOAP请求都会失败。我试图转义该html字符串令牌,SOAP请求成功,但是整个字符串都被所有转义的字符弄乱了,第三方需要此html字符串来呈现模板,因此无论如何我都无法发送转义的版本。有什么办法可以安全地传递html字符串而不会导致请求崩溃?

小智 6

无法在服务器端解析soap-request时,通常会发生错误“创建SAAJ对象模型的问题” 。在服务器上的日志文件中,您可以看到类似

Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '>' (code 62) (expected a name start character)
 at [row,col {unknown-source}]: [18,6]
Run Code Online (Sandbox Code Playgroud)

您将html标签传递到肥皂信封,因此转义html-tags可能会出现问题。在soap-request中为此类数据传递BASE64字符串是一个好习惯