非法XML字符:Oracle服务总线中的0x10

wz3gfoph  于 2023-01-30  发布在  Oracle
关注(0)|答案(1)|浏览(99)

我使用的是Oracle OSB和Weblogic 12 c。XML版本是1.0。
我有一个接口,可以接收来自后端方的传入请求。每次当后端方发送请求消息时,消息跳到错误队列中,代理服务抛出错误消息:
Caused by: org.apache.xmlbeans.XmlException: error: Unexpected element: CDATA ................Caused by: org.xml.sax.SAXParseException; systemId: file:; lineNumber: 1; columnNumber: 1; Illegal XML character: 0x10
我似乎无法精确定位非法字符的位置,当我用Notepad ++打开管道时,我可以看到一些xquery CDATA行,如下所示:

<![CDATA[<ns0:Request xmlns="" xmlns:ns0="http://blabla/testest">
           <ns0:MessageType>{ $body/ns0:Request/ns0:MessageType/text() }</ns0:MessageType>
           <ns0:Feature>{ $body/ns0:Request/ns0:Feature/text() }</ns0:Feature>
           <ns0:Identity>
               <ns0:nummer>{ $body/ns0:Request/ns0:Identity/ns0:nummer/text() }</ns0:nummer>
               <ns0:type>{ $body/ns0:Request/ns0:Identity/ns0:type/text() }</ns0:type>
           </ns0:Identity>
           <ns0:InterestedParty>{ $body/ns0:Request/ns0:InterestedParty/text() }</ns0:InterestedParty>
           <ns0:ReceiveParty>
               <ns0:nummer>{ $body/ns0:Request/ns0:ReceiveParty/ns0:nummer/text() }</ns0:nummer>
               <ns0:type>{ $body/ns0:Request/ns0:ReceiveParty/ns0:type/text() }</ns0:type>
           </ns0:ReceiveParty>
           <ns0:PartyRole>{ $body/ns0:Request/ns0:PartyRole/text() }</ns0:PartyRole>
           <ns0:SubjectMessage>
               <ns0:mimeType>{ $body/ns0:Request/ns0:SubjectMessage/ns0:mimeType/text() }</ns0:mimeType>
               <ns0:Filename>{ $body/ns0:Request/ns0:SubjectMessage/ns0:Filename/text() }</ns0:Filename>
               <ns0:subject>{ $body/ns0:Request/ns0:SubjectMessage/ns0:subject/text() }</ns0:subject>
           </ns0:SubjectMessage>
           <ns0:autorisatieAdres>http://geenausp.nl</ns0:autorisatieAdres>
       </ns0:Request>

如果我在服务总线控制台中测试消息,它工作正常。这个错误只在从外部接收消息时发生。

我尝试过什么

我尝试在setDomainenv中使用以下java选项添加一行:-Dcom.bea.osb.http.cookieAsNoComplexElement=真
这似乎不起作用。

Update:初始请求消息有一个base64元素。如果后端方发送的消息没有这一行,流程工作正常。但奇怪的是,如果我在服务总线控制台内测试相同的消息,它工作正常!那么哪里出错了呢?

lpwwtiir

lpwwtiir1#

请求消息作为MIME版本1.0而不是XML版本1.0发送。我认为这是由请求方在标头中发送的。管道因此引发错误,仅接受XML类型。

相关问题