Erro ao carregar imagem + primefaces

1 resposta
J

galera,

eu to tentando fazer upload de imagens e exibir na tela, assim que for carregado.

A aplicação ja consegue fazer o upload pro servidor e guardar em um diretorio especifico. Mas ele nao renderiza a imagem na tela e mostra esse erro

GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/Condo] threw exception [null] with root cause
java.lang.NullPointerException
	at org.primefaces.application.DynamicContentStreamer.streamDynamicContent(DynamicContentStreamer.java:78)
	at org.primefaces.application.DynamicContentStreamer.beforePhase(DynamicContentStreamer.java:57)
	at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Minha view
<p:fileUpload fileUploadListener="#{moduloMb.enviarImagem}" auto="true" customUI="false" allowTypes="*.jpg;*.png;*.gif;" description="Images" update="outputPanelUpload"/>
							
							<p:outputPanel id="outputPanelUpload">
									<p:graphicImage value="#{moduloMb.imagemEnviada}" >
									</p:graphicImage>
							</p:outputPanel>
meu MB
private StreamedContent imagemEnviada = new DefaultStreamedContent();
private String imagemTemporaria;

public void enviarImagem(FileUploadEvent event) 
	{

	      byte[] img = event.getFile().getContents();
	      imagemTemporaria = "D:\\Projetos\\Condo\\imagens\\" + event.getFile().getFileName();
	      String arquivo =  imagemTemporaria;
	      criaArquivo(img, arquivo);
	   }

Alguem ja viu esse erro?

1 Resposta

J

bom, a imagem ja apareceu na minha tela. O problema é que ela nao renderiza automaticamente. Preciso dar o F5 pra ela aparecer.

será algum problema com os componentes primefaces?

inclusive percebi que ele passa 8 vezes pelo metodo de setar e recuperar a imagem. Na primeira vez que carrego a aplicação, como não tem imagem, aparece assim:

recuperando imagem enviada: null recuperando imagem enviada: null recuperando imagem enviada: null recuperando imagem enviada: null recuperando imagem enviada: null recuperando imagem enviada: null recuperando imagem enviada: null

depois que eu escolhi a imagem e fiz o upload, aparece assim:

recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84 recuperando imagem enviada: java.io.ByteArrayInputStream@2eeb3c84

sera que tem a ver com as fases do jsf? alguem sabe como evitar todo esse processo?

Criado 29 de maio de 2011
Ultima resposta 29 de mai. de 2011
Respostas 1
Participantes 1