Hi Experts,

I am having trouble displaying BLOB data in my page. My requirement is that I 
must be able to show some predefined types(PDF, HTML, GIF, JPEG, DOC, XLS) of 
BLOB data in my page. This page must have the header of my application. I tried 
to use the example given at http://www.irian.at/myfaces/fileupload.jsf. I tried 
that example and it seemed to work for Images. But after I incorporated it in 
my app, I am getting the exception. Upload works, but problem is with 
displaying the content of the BLOB data. We  have a field in the table where we 
set what type of data is in the BLOB, so I set the ContentType from that. 
I am using Myfaces 1.1.5, Tomahawk 1.1.3, Ajax4Jsf 1.1.1. server is WLS8.1 sp6.
I understand that it is a problem with the page encoding/ content type set for 
the page.I tried it with UTF-8 and ISO-8859-1, but neither of them worked. Any 
help is appreciated. below is my jsp file and the exception I am getting. the 
jsp file is included in a tile.
Thanks,
Sushma

===================JSP File==  showFile.jsp ==============================
<%@ page session="false" %>
<%
    String contentType = (String)application.getAttribute("fileupload_type");
    String fileName = (String)application.getAttribute("fileupload_name");

    String allowCache = request.getParameter("allowCache");
    String openDirectly = request.getParameter("openDirectly");
    
    System.out.print("\n\n*********** allowCache  " + allowCache);
    
    if(allowCache == null || allowCache.equalsIgnoreCase("false"))
    {
        response.setHeader("pragma", "no-cache");
        response.setHeader("Cache-control", "no-cache, no-store, 
must-revalidate");
        response.setHeader("Expires", "01 Apr 1995 01:10:10 GMT");
    }

    if(contentType!=null)
    {
        System.out.print("\n\n*********** contentType  " + contentType);
        response.setContentType(contentType);
    }

    if(fileName != null)
    {
        System.out.print("\n\n*********** fileName  " + fileName);
        fileName = fileName.substring(fileName.lastIndexOf('\\')+1);
        fileName = fileName.substring(fileName.lastIndexOf('/')+1);

        StringBuffer contentDisposition = new StringBuffer();

        System.out.print("\n\n*********** openDirectly  " + openDirectly);
        if(openDirectly==null || openDirectly.equalsIgnoreCase("false"))
        {
            contentDisposition.append("attachment;");
        }

        contentDisposition.append("filename=\"");
        contentDisposition.append(fileName);
        contentDisposition.append("\"");

        response.setHeader ("Content-Disposition", 
contentDisposition.toString());
    }

    byte[] bytes = (byte[])application.getAttribute("fileupload_bytes");
    System.out.print("\n\n*********** fileupload_bytes  ");
    if (bytes != null)
    {
        System.out.print(" =  " + bytes);
        response.getOutputStream().write(bytes);
    }
%>


-------------------------------Exception 
-------------------------------------------------------------------------------------

Can't insert page '/pages/cannedEmail/showFile.jsp' : null 
sun.io.MalformedInputException 

at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:149) at 

weblogic.servlet.internal.CharChunkOutput.write(CharChunkOutput.java:111) at 

weblogic.servlet.internal.ChunkOutputWrapper.write(ChunkOutputWrapper.java:125) 
at 

weblogic.servlet.jsp.BodyOutputStream.write(NestedBodyResponse.java:65) at 

java.io.OutputStream.write(OutputStream.java:58) at 

jsp_servlet._pages._cannedemail.__showfile._jspService(__showfile.java:168) at 

weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at 

weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run

(ServletStubImpl.java:1077) at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet

(ServletStubImpl.java:465) at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet

(ServletStubImpl.java:526) at 
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97)
 at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:652)
 at 

weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:431)
 at 

weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:154) at 

org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137) at 

org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177) at 

org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756) at 

org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:881)
 at 

org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473) at 

jsp_servlet.__layout._jspService(__layout.java:260) at 
weblogic.servlet.jsp.JspBase.service

(JspBase.java:33) at 
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run

(ServletStubImpl.java:1077) at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet

(ServletStubImpl.java:465) at 
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97)
 at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:334)
 at 

org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch

(ServletExternalContextImpl.java:419) at 

org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.dispatch

(JspTilesViewHandlerImpl.java:233) at 

org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.renderView

(JspTilesViewHandlerImpl.java:219) at 

org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
 at 

org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
 at 

org.apache.myfaces.lifecycle.RenderResponseExecutor.execute

(RenderResponseExecutor.java:41) at 
org.apache.myfaces.lifecycle.LifecycleImpl.render

(LifecycleImpl.java:132) at 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) 

at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:77) at 

weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run

(ServletStubImpl.java:1077) at 
weblogic.servlet.internal.ServletStubImpl.invokeServlet

(ServletStubImpl.java:465) at 
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:97)
 at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
 at 

org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277) 
at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
 at 

weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) at 

weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run

(WebAppServletContext.java:7053) at 

weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at 

weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at 

weblogic.servlet.internal.WebAppServletContext.invokeServlet

(WebAppServletContext.java:3902) at 
weblogic.servlet.internal.ServletRequestImpl.execute

(ServletRequestImpl.java:2773) at weblogic.kernel.ExecuteThread.execute

(ExecuteThread.java:224) at 
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) 

Reply via email to