我周而复始地寻找这种奇怪的情况。我尝试过各种建议,大多与BOM问题有关,但在从Eclipse导出的可执行jar文件中运行时,我仍然会得到这个“类似BOM”的错误。在Eclipse中运行代码时,我不会得到错误。该平台为Windows 2012r2
实际的解析是在一个Groovy类中使用XmlSlurper完成的,它的输入是从Java传递的一个XmlSlurper。我假设问题在创建字符串的Java代码中。
当我在Eclipse中运行第一个测试时,我得到了这个错误。最后,我检查了np++中的编码(用于编辑文件,而不是创建它),它写着"UTF-8 + BOM“。我把它改成了"UTF-8“,而不是回忆几年前处理BOMs的事情。解决了问题。
当我将Eclipse项目导出到一个可执行的jar文件时,我会从同一个xml文件中得到“Content不允许”解析异常(好的,它被复制到另一个文件夹)。
我尝试过使用Apache BOMInputStream从文件中包装InputStream (这在过去对我来说是有效的)。这次没有。(BomInputStream) #getBOM()的结果是假的。但是,当我将编码设置为"UTF-8 + BOM“时,这也是错误的!(在Eclipse和jar中运行)
如果是相关的话,Groovy代码的开始是:
def ClientConfig parse (String clientConfigXML) {
def config = new XmlSlurper(false, false).parseText(clientConfigXML);
我很高兴能有人帮忙。我还没有包含Java代码,因为它是您在问答中为本主题找到的常见内容,而且它现在充斥着注释性的代码。该睡觉了..。
向你问好,约翰
[答覆:
如果您试图解析以注释开头的.properties文件,并认为它是xml,则会得到".1:1:.1:1不允许内容.“来自xml解析器的错误。那是因为我粗心。感谢下面的提示,让我检查了这个基本事实。
从中得到的好处是,我的代码现在是BOM的。我将继续使用BOMInputStream -消除了一些技术债务。]
发布于 2018-08-12 08:51:35
我在启动jar文件的.bat
文件中更改了.bat
参数的值(用于“属性”文件)。它仍然指的是一个.properties
文件,我用一个XML文件代替了这个文件。当您读取应该是XML文件的内容时,会出现此错误,但实际上,它是一个属性文件。
https://stackoverflow.com/questions/48675142
复制相似问题