지난 2 주 동안 웹 응용 프로그램에서이 오류가 발생했습니다. 서버는 Linux redhat이며 최근에 패치를 적용하지 않았습니다. 또한 그것은 44 일 동안 지속되었습니다. 또한 자바 또는 바람둥이 변경 또는 릴리스가 없었습니다 (그러나 바람둥이는 하루에 한 번 반송됩니다). 어떤 종류의 charset/locale/encoding 문제처럼 보일지는 모르겠지만 지금은 왜 시작했는지를 놓치고 있습니다. 궁극적으로 poi 코드와 관련이 있습니다.DataInputStream UTFDataFormatException : 바이트 88 근본 원인에 대한 잘못된 입력
poi-ooxml-3.10.1.jar을 사용하여 xmlbeans-2.6.0.jar를 가져옵니다. xmlbeans가 초기화되고 컴파일 된 스키마 중 하나에서 2 바이트 '수정 된 UTF-8'문자를 읽을 때 오류가 발생한 것으로 보입니다. 그게 내가 지금까지있는 곳이야. 통제 된 환경에서 그 일이 시작될 수있는 이유는 당황 스럽습니다. 다음은이
new SXSSFWorkbook(-1);
일부 조각을 일으키는 코드의
라인 : 로컬 Windows 시스템에서
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)
그것의 재현 할 수 없습니다.
새로운 아이디어와보고에 큰 감사드립니다.
왜'readUTF()'가 호출되고 있는지 왜 당황하게합니까? 'writeUTF()'형식은 Java 고유의 형식으로 Microsoft POI 형식과는 아무런 관련이 없습니다. – EJP