org.primefaces.Modell.DefaultStreamedContent nicht cast auf java.lang.String

Ich bin versucht, ein Bild anzuzeigen, das gespeichert ist, in ein BLOB in eine MySQL -, mit OpenJpa für die Persistenz. Ich bin mit einem <p:graphicImage> wo durch der Benutzer-Profil-Bild, aber ich bekomme eine Fehlermeldung beim öffnen der Seite.

Dies ist der code von der Seite wo das Foto ist geladen.

<h:panelGrid columns="2">
      <p:graphicImage value="#{login.getImage()}" alt="/sistema.ciclos.calidad/resources/perfil/default.png"  width="150px" height="150px">
           <f:param name="id" value="#{param.id}" />
      </p:graphicImage>
      <h:panelGrid columns="1">
           <h:outputLabel  id="nombre" value="#{login.usuario.getNombreCompleto()}"></h:outputLabel>
           <h:outputLabel id="cargo" value="#{login.usuario.cargo.cargo}"></h:outputLabel>
           <h:outputLabel  id="correo" value="#{login.usuario.correo}"></h:outputLabel>
      </h:panelGrid>
</h:panelGrid>

diese Methode gibt mir das Foto, in der Bohne.

        @ManagedProperty("#{param.id}")
        private Long id;

        @PostConstruct
        public void init()  {
            ...
            id=usuario.getIdUsuario();
        }

        ...

        public StreamedContent  getImage() {
            byte[] bytes=usuario.getFotoPerfil();
            return new DefaultStreamedContent(new ByteArrayInputStream(bytes));
        }

Ich bin mit Primefaces 4.0, Jsf 2.0, maven.
Ich habe versucht, was ist in diesem post (Post), aber nicht passiert

javax.servlet.ServletException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
        org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
        cl.im.ciclos.service.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
        cl.im.ciclos.service.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
        cl.im.ciclos.service.security.LoginFilter.doFilter(LoginFilter.java:52)
    root cause

    java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
        com.sun.faces.renderkit.RenderKitUtils.getImageSource(RenderKitUtils.java:1282)
        com.sun.faces.renderkit.html_basic.ImageRenderer.encodeEnd(ImageRenderer.java:97)
        javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
        com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:295)
        com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
        com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
        javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
        javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
        com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
        com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
        javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
        com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
        com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
        org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
        cl.im.ciclos.service.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
        cl.im.ciclos.service.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:32)
        cl.im.ciclos.service.security.LoginFilter.doFilter(LoginFilter.java:52)
  • Die Antwort ist in dem stack-trace. Bitte keine auslassen von Fragen rund um die Ausnahmen.
  • Ich habe mir den stack-trace, aber dennoch kann es nicht sein, weil das nur Klassen, die ich erscheinen soll, auf dem stack Filter sind in einer Sitzung und UFT-8 Codierung.
  • Lassen Sie die Schlussfolgerungen auf diejenigen, die Lesen können, die stack-traces 🙂
InformationsquelleAutor Isma90 | 2013-11-19
Schreibe einen Kommentar