我已经开始在过去两周内在我的网络应用应用中看到此错误。服务器是linux redhat,最近没有修补。它已经持续了44天。也没有任何java或tomcat更改或发布(但tomcat确实每天被弹回一次)。我知道它看起来像某种charset / locale / encoding问题,但我现在不知道为什么它可能已经开始了。它最终与poi代码有关。
我正在使用poi-ooxml-3.10.1.jar,它引入了xmlbeans-2.6.0.jar。似乎错误是当xmlbeans初始化时,然后在从其编译的一个模式中读取一个2字节的“修改过的UTF-8”字符时失败。那是我到目前为止的地方。为什么这种情况可以在受控制的环境中开始发生,这让我很困惑。
导致此
的代码行new SXSSFWorkbook(-1);
下面的一些片段:
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:181)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:172)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:143)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.<init>(SXSSFWorkbook.java:205)
...
Caused by: java.io.UTFDataFormatException: malformed input around byte 88
at java.io.DataInputStream.readUTF(DataInputStream.java:634)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at
org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$StringPool.readFrom(SchemaTypeSystemImpl.java:1050)
它在本地Windows机器上无法重现。
非常感谢您的关注和任何新想法。
答案 0 :(得分:0)
这是某种腐败的构建。很奇怪。无论如何重建工作。