2014-04-12 4 views
0

BufferedImage 및 imageIO.write를 통해 생성 된 동적 이미지를 보내야합니다. byteArray는 httpsevletresponse의 servletoutputstream에 기록됩니다. content-type은 image/jpeg로 설정되고 인코딩은 httpsevletresponse 객체에서 utf-8로 설정됩니다. weblogic12c에서 servletoutputstream의 일부로 동적 이미지를 보내는 방법

그러나

sevletOutputStream.write (b)는, 나는 java.nio.charset.MalFormedInputException 얻고있는 동안 : 입력 길이 :

1 나는 UTF-16으로 인코딩을 설정해야합니까합니다.

이 오류는 jdk 1.7.0_45가있는 weblogic 12c 서버에서만 발생합니다. 동일한 코드 바람둥이

스택 트레이스뿐만 아니라 다른 응용 프로그램 서버에 노력하고 있습니다

: 예외 추적을 같은 당

<captchaBytes=[[email protected]> 
    java.nio.charset.MalformedInputException: Input length = 1> 
<at java.nio.charset.CoderResult.throwException(CoderResult.java:277)> 
<at weblogic.servlet.internal.CharChunkOutput.write(CharChunkOutput.java:116)> 
<at weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:148)> 
<at weblogic.servlet.jsp.BodyOutputStream.write(NestedBodyResponse.java:54)> 
<at java.io.OutputStream.write(OutputStream.java:75)> 

코드 조각 아래 :

Byte[] imageBytes = get image byte from backend using ImageIO.write 
httpServletResponse.setContentType("image/jpeg"); 
ServletOutputStream out; 
httpServletResponse.setHeader("Cache-Control", "no-store"); 
httpServletResponse.setHeader("Pragma", "no-cache"); 
httpServletResponse.setDateHeader("Expires", 0); 
httpServletResponse.setCharacterEncoding("UTF-8"); 
out = httpServletResponse.getOutputStream(); 
out.flush(); 
out.write(imageBytes); \\ Error Occured here 
+0

소스 코드 및 스택 트레이스가 없으면 어떤 일이 일어나고 있는지 추측 할 수 없습니다. –

+0

Stacktrace 및 코드 추가 – Harshit

+0

이 경우에는 전체 스택 트레이스를 선호합니다. 이것은 매우 짧습니다. btw는 이진 데이터를 전달할 때 문자 인코딩을 설정하는 것은 의미가 없습니다. –

답변

0

전에 httpServletRequest.resetBuffer()을 추가 한 후 out = httpServletResponse.getOutputStream()으로 전화하면이 문제가 해결됩니다. 이미지가 생성 된 JSP가 이미지 태그 src 내에 다른 JSP의 일부로 포함 되었기 때문에 MalformedInputException이 발생했습니다.

+0

다른 사람이 이미 작성했음을 의미합니까? 이 서블릿에 디스패치 한 일부 필터 또는 otherservlet? –

+0

예. 동일한 코드가이 링크에 언급되어 있습니다. http://stackoverflow.com/questions/11669898/including-jsp-in-jsf-gives-exception-as-input-length-1 – Harshit