首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于有效XML的XMLStreamException

基于有效XML的XMLStreamException
EN

Stack Overflow用户
提问于 2020-07-27 11:09:20
回答 1查看 678关注 0票数 3

我目前正面临一个奇怪的问题,这个问题并不经常发生。我的应用程序使用带有JAXB和Java (XMLStreamReader)的数百万行的XMLStreamReader来解除XML文件的编组,如果更改了XML,则在启动时将这些对象导入数据库。到目前为止,这是正确的工作,除了在一些设备(约5%以上的1000多个设备)。在这些设备上我得到了一个javax.xml.stream.XMLStreamException。有时,重新启动会有所帮助,并且可以成功地处理XML。XML本身在所有设备上都具有相同的内容,因此XML和XSD都是有效的

例外情况也并非总是发生在同一地点。例如:

由: javax.xml.stream.XMLStreamException: ParseError at row,col2650616,17 Message: Element type "XX“引起,后面必须跟着属性规范">”或"/>“。

稍后:

col3272359,14

[javax.xml.stream.XMLStreamException: ParseError at row,javax.xml.stream.XMLStreamException Message: Element type "XY“必须后面跟着属性规范">”或“/>”。

整个应用程序运行在一个微服务体系结构中,但不依赖于其他服务。在启动时,会发生很多事情,因为每个微服务都初始化自己的状态。对我来说,似乎存在一些内存问题,因为它是不可复制的,并且设备上的微服务在它们的版本上没有什么不同。

在优化解编组过程之前,我希望能够首先重现这个问题,以确保任何改进都是有效的。当我试图减少Xmx和Xmx时,我可能会得到OutOfMemoryException,但永远不会得到XMLStreamException

现在我在问自己,

当和为什么会发生behaviour?

  • Why时和为什么会发生XMLStreamException,以及如何复制这个XMLStreamException--这种情况可能不会经常发生,因为所有的设备都应该是相同的?

  • 应该切换到SAX,这是更多的memory-efficient?

吗?

谢谢你提前提供帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-07-27 13:11:57

你的问题中没有足够的信息可以给出明确的答案,但我们可以帮助你解决这个问题。

  1. 你看到的变化几乎肯定是由于输入变化,而不是设备故障。--

  1. 错误指示流不是 XML。(从技术上讲,文本数据甚至不是XML;它导致了预验证解析错误。)

在这里,

  1. 是一个格式不完善的XML的简单示例,它会生成这样的错误:

<=‘’/>

注意,属性值中有一个未转义的'。当代码从源中提取数据、无法转义数据并将其写入属性值时,这种情况很容易发生。这种变化将产生于数据的可变性。例如,大多数名称中没有',但O'Toole有.

记录作为调试问题的下一步失败的确切XML,如@vanje在注释中的mentioned

另请参阅

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63114061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档