Olá Pessoal,
Estou o dia todo tentando entender pq acontece isso… é estranho…
Seguinte, tenho um CRUD simples feito em primefaces, o botão gravar tem retorno void, pois ao salvar o sistema tem que set mantido na mesma tela.
Quando eu clico no botão salvar a primeira vez, o sistema se comporta muito bem, mas quando clico novamente no botão salvar o sistema dá erro na construção do Bean:
com.sun.faces.mgbean.ManagedBeanCreationException: Um erro ocorreu ao realizar a injeção de recurso no bean gerenciado usuarioBean
at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:229)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:267)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:86)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68)
Parte do meu bean:
public UsuarioBean() {
}
@PostConstruct
public void init(){
HttpSession session = ( HttpSession ) FacesContext.getCurrentInstance().getExternalContext().getSession( true );
String email = (String) session.getAttribute("emailUsuario");
usuario = businessService.obterPorEmail(email);
paises = businessService.listarPais();
atividades = businessService.listarRamoAtividade();
titulacoes = businessService.listarTitulacao();
tiposUsuario = businessService.listarTipoUsuario();
if(usuario != null){
if(usuario.getCidade() != null && usuario.getCidade().getEstado() != null && usuario.getCidade().getEstado().getPais() != null) {
paisSelecionado = usuario.getCidade().getEstado().getPais().getCodigo().toString();
}
estados = businessService.listarEstadoPorPais(1);
estadoSelecionado = usuario.getCidade().getEstado().getCodigo().toString();
cidades = businessService.listarCidadePorEstado(1);
cidadeSelecionado = usuario.getCidade().getCodigo().toString();
titulacaoSelecionado = usuario.getTitulacao().getCodigo().toString();
atividadeSelecionado = new ArrayList<String>();
for (int i = 0; i < usuario.getRamoAtividades().size(); i++) {
atividadeSelecionado.add((usuario.getRamoAtividades().get(i).getCodigo().toString()));
}
tiposSelecionado = new ArrayList<String>();
for (int i = 0; i < usuario.getTipos().size(); i++) {
tiposSelecionado.add((usuario.getTipos().get(i).getCodigo().toString()));
}
String caminhoDestinoFoto = ( ( ServletContext ) FacesContext.getCurrentInstance().getExternalContext().getContext() ).getRealPath( "fotos_usuarios" );
File foto;
try {
foto = new File(caminhoDestinoFoto + "/" + this.getUsuario().getCodigo() + ".jpg");
fotoView = new DefaultStreamedContent(new FileInputStream(foto), "image/jpeg");
} catch (FileNotFoundException e) {
foto = new File(caminhoDestinoFoto + "/" + "fotoUser.png");
try {
fotoView = new DefaultStreamedContent(new FileInputStream(foto), "image/jpeg");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}
}
public void gravar() {
if (this.validar()) {
String caminhoDestinoFoto = "";
if ( FacesContext.getCurrentInstance() != null ) {
caminhoDestinoFoto = ( ( ServletContext ) FacesContext.getCurrentInstance().getExternalContext().getContext() ).getRealPath( "fotos_usuarios" );
}
if(foto != null) {
caminhoDestinoFoto = caminhoDestinoFoto + "/" + this.getUsuario().getCodigo() + ".jpg";
FileOutputStream outputStream;
try {
outputStream = new FileOutputStream( caminhoDestinoFoto );
byte byteFoto[] = IOUtils.toByteArray(foto.getInputstream());
outputStream.write(byteFoto);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
businessService.gravarUsuario(this.getUsuario());
}
}
Parte do xhtml
<td colspan="4"><p:commandButton value="Gravar"
actionListener="#{usuarioBean.gravar}"
ajax="false" styleClass="btAzul-1" />
<input
type="reset" class="btAzul-1" value="Cancelar" />
</td>
Alguem tem uma luz?
Obrigada