<p:graphicImage
id="imgExibir"
value="#{mbGerImagem.realizouUpload ? mbGerImagem.imagem01 : mbGerImagem.imagem02}"
cache="false"
/>
Ago 09, 2016 1:31:08 PM com.br.painelmobile.util.managerbean.listener.OuvinteFases afterPhaseCONTINUA....
Informações: INVOKE_APPLICATION 5 ENCERROU
Ago 09, 2016 1:31:08 PM com.br.painelmobile.util.managerbean.listener.OuvinteFases beforePhase
Informações: RENDER_RESPONSE 6 INICIOU
Ago 09, 2016 1:31:09 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
Grave: Error Rendering View[/main/evento/cadastro-evento.xhtml]
java.io.IOException: java.lang.NullPointerException
at org.primefaces.component.graphicimage.GraphicImageRenderer.encodeEnd(GraphicImageRenderer.java:43)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:889)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
--
Você recebeu essa mensagem porque está inscrito no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para javasf+unsubscribe@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/javasf.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/javasf/CAB%2BSber1BwdRXZ-ZGSHLv%3Db41vZim7p2A1Mfg3Kpx533jXSoMA%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.
<p:graphicImage
id="imgExibir"
value="#{mbGerImagem.realizouUpload ? mbGerImagem.imagemMemoria : mbGerImagem.imagem}"
cache="false"
title="#{mbEventoCadastro.evento.descricao}"
alt="#{mbEventoCadastro.evento.descricao}"
width="300"
height="200" />
package com.br.painelmobile.controle.mb;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.Serializable;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.commons.io.FilenameUtils;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
import com.br.painelmobile.modelo.persistencia.entidade.enums.EstatusEntidadeEnum;
import com.br.painelmobile.modelo.persistencia.entidade.mapeadas.Evento;
import com.br.painelmobile.util.managerbean.diversos.FacesUtil;
import com.br.painelmobile.util.manipularDados.ConversorData;
@Named("mbEventoCadastro")
@ViewScoped
public class MBEventoCadastro implements Serializable {
private static final long serialVersionUID = 1L;
// ha uma conf. no tomcat que diz que este link ira redirecionar para caminho fisico
private static final String linkRedirecionaCaminhoFisicoImagemEvento = "/webservice/evento/imagem";
@Inject
private MBGerImagem mbGerimagem;
private UploadedFile uploadFile;
private Evento evento = new Evento(
0,
ConversorData.converteEmCalendar(21, 02, 1986),
"http://danceconceptbrasil.com.br/wp-content/uploads/2015/06/palestrantes-para-seu-evento-600x369.jpg",
"Evento realizado no balneario", EstatusEntidadeEnum.ATIVO);
public MBEventoCadastro() {
System.out.println("InstanciaMBEvento............................");
}
public void inicializar() {
if (FacesUtil.isNotPostBack()) {
System.out.println("isNotPostback ID é: " + evento.getId());
// envia para o bean o caminho fisico das imagems e o ID da entidad
mbGerimagem.parametrizarGerenciador(evento.getId(),
linkRedirecionaCaminhoFisicoImagemEvento, evento.getNomeImagem());
evento.setDescricao("descrição para visualização da imagem");
}
System.out.println("Inicializa..........");
}
/** REALIZA O UPLOAD DO ARQUIVO E CARREGA EM UMA VARIÁVEL
* @param event evento para manusear o arquivo enviado ao servidor */
public void uploadImagem(FileUploadEvent event) {
// obtem uma streaming da imagem
uploadFile = event.getFile();// converte a imagem para o tipo uploadFile
// envia a imagem para um MB @sessionScoped, pois o GraphicImage não
// funciona com o @ViewScoped para mostrar a tela
mbGerimagem.setFile(uploadFile);
// envia mensagem de sucesso
FacesUtil.addMessage(FacesMessage.SEVERITY_INFO, "Imagem: " + uploadFile.getFileName()
+ " enviada com sucesso.");
}
public void salvar() throws IOException {
// verifica que uploadfile é nulo
if (!(uploadFile instanceof Object)) {
// envia mensagem de sucesso
FacesUtil.addMessage(FacesMessage.SEVERITY_INFO,
"É necessário selecionar uma imagem válida antes da salvar");
}
else {
Path folder = Paths.get("C:/Tomcat 8.0/painelmobile/eventoImagem");
String filename = FilenameUtils.getBaseName(uploadFile.getFileName());
String extension = FilenameUtils.getExtension(uploadFile.getFileName());
Path file = Files.createTempFile(folder, filename + "-", "." + extension);
System.out.println("CAMINHO DO ARQUIVO SALVA: " + file.toString());
System.out.println("P.toUi"+ folder.toUri());
System.out.println("P.toUi"+ folder.toAbsolutePath());
System.out.println("P.toUi"+ folder.getFileName());
criaArquivo(uploadFile.getContents(), file.toString());
// converte
/* System.out.println(uploadFile.getInputstream() + " $$%%%%%%%%%%%%%#############");
*
* try (InputStream input = uploadFile.getInputstream()) { Files.copy(input, file); }
*
* System.out.println("Uploaded uploadFile successfully saved in " + file); */
}
}
public void criaArquivo(byte[] bytes, String arquivo) {
FileOutputStream fos;
try {
fos = new FileOutputStream(arquivo);
fos.write(bytes);
fos.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).log(Level.SEVERE, null, ex);
}
}
public void deletarArquivo() {
String nome = "C:/pasta_de_teste/teste.html";
File file = new File(nome);
file.delete();
}
public Evento getEvento() {
return evento;
}
public void setEvento(Evento evento) {
this.evento = evento;
}
private boolean apertou=false;
public boolean isApertou() {
return apertou;
}
public void setApertou(boolean apertou) {
this.apertou = apertou;
}
}
Posta o código do managedbean pra gente ver.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/javasf/CAAMaVtQzr7L7WW9yrNzK6dXZ%2BT1AUA2DSPBtrTptHf5Ki%3DBZYA%40mail.gmail.com.
Posta o código do managedbean pra gente ver.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/javasf/CAAMaVtQzr7L7WW9yrNzK6dXZ%2BT1AUA2DSPBtrTptHf5Ki%3DBZYA%40mail.gmail.com.