{
"code" : "messaging.config.beans.ImportFailed",
"message" : "Failed to import the bundle : com.apigee.repository.RepositoryException: javax.xml.bind.UnmarshalException\n - with linked exception:\n[org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.]",
"contexts" : [ ], "cause" : {
"message" : "javax.xml.bind.UnmarshalException\n - with linked exception:\n[org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.]",
"contexts" : [ ],
"cause" : {
"contexts" : [ ],
"cause" : {
"message" : "The entity name must immediately follow the '&' in the entity reference.",
"contexts" : [ ]
}
}
}
}
每次尝试上传到apigee时,我都会收到此错误。我几乎检查了每个&符号。有谁知道如何获得更多信息?
答案 0 :(得分:2)
检查您的条件和条件流量&& - 虽然您可以使用&&成功部署在用户界面中(因为它可以帮助您将转换"&&"转换为"和#34;)如果直接通过Management API进行部署,则无法使用双&符号。
通过UI部署此内容
<Condition>(1 = 1) && (2 = 2)</Condition>
似乎会成功,但如果你之后检查你的代码(你可能需要刷新),你会看到它变成
<Condition>(1 = 1) and (2 = 2)</Condition>
但是,如果您尝试使用&amp;&amp;通过管理API,您会收到错误:
{
"code" : "messaging.config.beans.ImportFailed",
"message" : "Failed to import the bundle : com.apigee.repository.RepositoryException: javax.xml.bind.UnmarshalException\n - with linked exception:\n[org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.]",
"contexts" : [ ],
"cause" : {
"message" : "javax.xml.bind.UnmarshalException\n - with linked exception:\n[org.xml.sax.SAXParseException: The entity name must immediately follow the '&' in the entity reference.]",
"contexts" : [ ],
"cause" : {
"contexts" : [ ],
"cause" : {
"message" : "The entity name must immediately follow the '&' in the entity reference.",
"contexts" : [ ]
}
}
}
答案 1 :(得分:0)
到目前为止,解析错误的最常见原因是XML文本中某处未编码的&符号。您需要在XML中编码&符号。您可以使用&
或&
(&符号的Unicode等效项)执行此操作,也可以将其嵌入CDATA
部分。
你说你几乎检查过每个&符号 - 除了显然建议检查其余的&符号,如果你在XSL转换中使用参数,我确保你的数据正在发送没有未编码的&符号。在转换之前,您可能需要运行JavaScript或其他代码策略来对输入参数中的任何&符号进行编码。
答案 2 :(得分:0)
它已经解决了。一个&符已包含在属性文件中,因此在maven构建过程中,&符号将包含在最终zip / jar文件中的XML中。
容易犯错。