Estou com o seguinte erro ao tentar adicionar uma imagem no meu banco de dados, segue o código.
Classe.
@Entity
@SuppressWarnings("serial")
public class Usuario implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long codigo;
private String login;
private String senha;
private String confirmarSenha;
@Lob
private byte[] imagem;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "perfil_codigo")
private Perfil perfil = new Perfil();
BEAN
@Named
@ViewScoped
@SuppressWarnings("serial")
public class CadastroUsuarioBean implements Serializable {
@Inject
private Usuario usuario;
@Inject
private UsuarioDao usuarioDao;
@Inject
private Perfil perfil;
@Inject
private PerfilDao perfilDao;
private Part foto;
@Transacao
public void adicionarUsuario() throws IOException {
if (this.usuario.getCodigo() == null) {
if (verificarSenhaComConfirmarSenha()) {
usuario.setImagem(IOUtils.toByteArray(this.foto.getInputStream()));
this.perfilDao.salvar(perfil);
Perfil perfilCodigo = this.perfilDao.buscarPorCodigo(perfil.getCodigo());
this.usuario.setPerfil(perfilCodigo);
this.usuarioDao.salvar(usuario);
MensagemUtil
.mensagemSalvoComSucesso("Usuario salvo com sucesso");
} else {
MensagemUtil.mensagemError("Usuario ou senha invalido");
}
} else {
this.perfilDao.editar(perfil);
this.usuarioDao.editar(usuario);
MensagemUtil.mensagemSalvoComSucesso("Usuario editado com sucesso");
}
this.usuario = new Usuario();
this.perfil = new Perfil();
}
HTML
<h:form id="formularioCadastro" enctype="multipart/form-data">
<p:panelGrid columns="2"
columnClasses="ui-grid-col-6,ui-grid-col-6" layout="grid"
styleClass="ui-panelgrid-blank">
<p:outputLabel value="Foto: " for="foto" />
<p:fileUpload allowTypes="/(\.|\/)(gif|jpe?g|png|pdf|doc|rar)$/"
skinSimple="true" id="foto" value="#{cadastroUsuarioBean.foto}"
mode="simple" required="true" styleClass="secondary"
requiredMessage="O campo foto é obrigatório" />
</p:panelGrid>
// RESTANTE DO CODIGO.
Erro.
Caused by: java.lang.NullPointerException
at br.com.borracharia.bean.CadastroUsuarioBean.adicionarUsuario(CadastroUsuarioBean.java:41)
at br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass.adicionarUsuario$$super(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.interceptor.proxy.TerminalAroundInvokeInvocationContext.proceedInternal(TerminalAroundInvokeInvocationContext.java:49)
at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:77)
at br.com.borracharia.gerenciamento.Gerenciamento.gerenciarTransacoes(Gerenciamento.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:84)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:72)
at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:56)
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79)
at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68)
at br.com.borracharia.bean.CadastroUsuarioBean$Proxy$_$$_WeldSubclass.adicionarUsuario(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:247)
... 34 more
QUE está acusando nessa linha.
usuario.setImagem(IOUtils.toByteArray(this.foto.getInputStream()));