2017-02-23 4 views
0

지난 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) 

그것의 재현 할 수 없습니다.

새로운 아이디어와보고에 큰 감사드립니다.

+0

왜'readUTF()'가 호출되고 있는지 왜 당황하게합니까? 'writeUTF()'형식은 Java 고유의 ​​형식으로 Microsoft POI 형식과는 아무런 관련이 없습니다. – EJP

답변

0

그것은 일종의 손상된 빌드입니다. 아주 이상한. 여하튼 재건 작업.