[英]how to send dynamic image as part of servletoutputstream in weblogic12c
I have to send dynamic image generated through BufferedImage and imageIO.write. 我必须发送通过BufferedImage和imageIO.write生成的动态图像。 The byteArray is written to servletoutputstream of httpsevletresponse.
将byteArray写入httpsevletresponse的servletoutputstream中。 The content-type is set to image/jpeg and encoding is set to utf-8 in httpsevletresponse object.
在httpsevletresponse对象中,内容类型设置为image / jpeg,编码设置为utf-8。
But while sevletOutputStream.write(b), I am getting java.nio.charset.MalFormedInputException : Input length :1 但是在sevletOutputStream.write(b)时,我正在获取java.nio.charset.MalFormedInputException:输入长度:1
Do I need to set the encoding to utf-16. 我是否需要将编码设置为utf-16。
This error is coming in weblogic 12c server with jdk 1.7.0_45 only. 仅使用jdk 1.7.0_45的weblogic 12c服务器中会出现此错误。
The Same code is working on other application server as well as tomcat 同一代码可在其他应用程序服务器和tomcat上运行
StackTrace : The exception trace as per below StackTrace:异常跟踪如下
<captchaBytes=[B@26e5c86e>
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)>
Code Snippet : 代码段:
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
After adding httpServletRequest.resetBuffer()
before calling the out = httpServletResponse.getOutputStream()
resolved this issue. 在调用
out = httpServletResponse.getOutputStream()
httpServletRequest.resetBuffer()
之前添加httpServletRequest.resetBuffer()
之后,解决了此问题。 The MalformedInputException
was thrown because this JSP where image was generated was included as part of other jsp within the image tag src. 之所以抛出
MalformedInputException
是因为生成图像的这个JSP作为其他jsp的一部分包含在图像标签src中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.