Fórum Netbeans-8.2- lang.NullPointerException #573783
14/01/2017
0
Boa tarde, estou tentando fazer uma persistencia com eclipseLink, só que está me retornando isso:
Exception in thread "main" java.lang.NullPointerException
at Teste.Te.main(Te.java:29)
C:\\Users\\Leonardo\\AppData\\Local\\NetBeans\\Cache\\8.2\\executor-snippets\\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
Classe:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.domain;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Leonardo
*/
@Entity
@Table(name = "IMAGEM")
@NamedQueries({
@NamedQuery(name = "Imagem.findAll", query = "SELECT i FROM Imagem i"),
@NamedQuery(name = "Imagem.findByCodigo", query = "SELECT i FROM Imagem i WHERE i.codigo = :codigo"),
@NamedQuery(name = "Imagem.findByNome", query = "SELECT i FROM Imagem i WHERE i.nome = :nome"),
@NamedQuery(name = "Imagem.findByFoto", query = "SELECT i FROM Imagem i WHERE i.foto = :foto"),
@NamedQuery(name = "Imagem.findByFotomin", query = "SELECT i FROM Imagem i WHERE i.fotomin = :fotomin"),
@NamedQuery(name = "Imagem.findByDatacreate", query = "SELECT i FROM Imagem i WHERE i.datacreate = :datacreate"),
@NamedQuery(name = "Imagem.findByDataalteracao", query = "SELECT i FROM Imagem i WHERE i.dataalteracao = :dataalteracao")})
@SequenceGenerator(name = "imagem_cod", sequenceName = "imagem_cod", initialValue = 1, allocationSize = 1)
public class Imagem implements Serializable {
private static final long serialVersionUID = 3L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imagem_cod")
private Long codigo;
private String nome;
@Basic(optional = false)
private String foto;
private String fotomin;
@Temporal(TemporalType.DATE)
private Date datacreate;
@Temporal(TemporalType.DATE)
private Date dataalteracao;
private List<Filme> filmeList;
private List<Serie> serieList;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
this.foto = foto;
}
public String getFotomin() {
return fotomin;
}
public void setFotomin(String fotomin) {
this.fotomin = fotomin;
}
public Date getDatacreate() {
return datacreate;
}
public void setDatacreate(Date datacreate) {
this.datacreate = datacreate;
}
public Date getDataalteracao() {
return dataalteracao;
}
public void setDataalteracao(Date dataalteracao) {
this.dataalteracao = dataalteracao;
}
@XmlTransient
public List<Filme> getFilmeList() {
return filmeList;
}
public void setFilmeList(List<Filme> filmeList) {
this.filmeList = filmeList;
}
@XmlTransient
public List<Serie> getSerieList() {
return serieList;
}
public void setSerieList(List<Serie> serieList) {
this.serieList = serieList;
}
}
Dao:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.dao;
import assis.mvc.stateless.*;
import assis.mvc.domain.Imagem;
import assis.mvc.interfaces.ImagemInterface;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author Leonardo
*/
public class ImagemDao {
private EntityManager em;
public ImagemDao(EntityManager emm) {
em = emm;
}
public Imagem salvar(Imagem imagem) {
if (imagem.getCodigo() == null) {
em.persist(imagem);
} else {
em.merge(imagem);
}
return imagem;
}
public Imagem consultaPorId(Long id) {
Imagem imagem = null;
imagem = em.find(Imagem.class, id);
return imagem;
}
public void remove(Long id) {
Imagem imagem = consultaPorId(id);
em.remove(imagem);
}
public List<Imagem> consultaAll() {
Query q = em.createNamedQuery("Imagem.findAll");
return q.getResultList();
}
public List<Imagem> consultaPorTitulo(String nome) {
Query q = em.createNamedQuery("Imagem.findByNome");
q.setParameter("nome", nome);
return (List<Imagem>) q.getResultList();
}
}
Stateless:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.stateless;
import assis.mvc.dao.ImagemDao;
import assis.mvc.domain.Imagem;
import assis.mvc.interfaces.ImagemInterface;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author Leonardo
*/
@Stateless
public class ImagemStateless implements ImagemInterface {
@PersistenceContext(unitName = "pool")
private EntityManager em;
@Override
public Imagem salvar(Imagem imagem) {
ImagemDao dao = new ImagemDao(em);
return dao.salvar(imagem);
}
@Override
public Imagem consultaPorId(Long id) {
ImagemDao dao = new ImagemDao(em);
return dao.consultaPorId(id);
}
@Override
public void remove(Long id) {
ImagemDao dao = new ImagemDao(em);
dao.remove(id);
}
@Override
public List<Imagem> consultaAll() {
ImagemDao dao = new ImagemDao(em);
return dao.consultaAll();
}
@Override
public List<Imagem> consultaPorTitulo(String titulo) {
ImagemDao dao = new ImagemDao(em);
return dao.consultaPorTitulo(titulo);
}
}
Interface:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.interfaces;
import assis.mvc.domain.Imagem;
import java.util.List;
import javax.ejb.Remote;
/**
*
* @author Leonardo
*/
@Remote
public interface ImagemInterface {
public Imagem salvar(Imagem imagem);
public Imagem consultaPorId(Long id);
public void remove(Long id);
public List<Imagem> consultaAll();
public List<Imagem> consultaPorTitulo(String titulo);
}
O pool está "ok", pois consigo me conectar,alguém poderia me ajudar?
Exception in thread "main" java.lang.NullPointerException
at Teste.Te.main(Te.java:29)
C:\\Users\\Leonardo\\AppData\\Local\\NetBeans\\Cache\\8.2\\executor-snippets\\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
Classe:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.domain;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Leonardo
*/
@Entity
@Table(name = "IMAGEM")
@NamedQueries({
@NamedQuery(name = "Imagem.findAll", query = "SELECT i FROM Imagem i"),
@NamedQuery(name = "Imagem.findByCodigo", query = "SELECT i FROM Imagem i WHERE i.codigo = :codigo"),
@NamedQuery(name = "Imagem.findByNome", query = "SELECT i FROM Imagem i WHERE i.nome = :nome"),
@NamedQuery(name = "Imagem.findByFoto", query = "SELECT i FROM Imagem i WHERE i.foto = :foto"),
@NamedQuery(name = "Imagem.findByFotomin", query = "SELECT i FROM Imagem i WHERE i.fotomin = :fotomin"),
@NamedQuery(name = "Imagem.findByDatacreate", query = "SELECT i FROM Imagem i WHERE i.datacreate = :datacreate"),
@NamedQuery(name = "Imagem.findByDataalteracao", query = "SELECT i FROM Imagem i WHERE i.dataalteracao = :dataalteracao")})
@SequenceGenerator(name = "imagem_cod", sequenceName = "imagem_cod", initialValue = 1, allocationSize = 1)
public class Imagem implements Serializable {
private static final long serialVersionUID = 3L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imagem_cod")
private Long codigo;
private String nome;
@Basic(optional = false)
private String foto;
private String fotomin;
@Temporal(TemporalType.DATE)
private Date datacreate;
@Temporal(TemporalType.DATE)
private Date dataalteracao;
private List<Filme> filmeList;
private List<Serie> serieList;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
this.foto = foto;
}
public String getFotomin() {
return fotomin;
}
public void setFotomin(String fotomin) {
this.fotomin = fotomin;
}
public Date getDatacreate() {
return datacreate;
}
public void setDatacreate(Date datacreate) {
this.datacreate = datacreate;
}
public Date getDataalteracao() {
return dataalteracao;
}
public void setDataalteracao(Date dataalteracao) {
this.dataalteracao = dataalteracao;
}
@XmlTransient
public List<Filme> getFilmeList() {
return filmeList;
}
public void setFilmeList(List<Filme> filmeList) {
this.filmeList = filmeList;
}
@XmlTransient
public List<Serie> getSerieList() {
return serieList;
}
public void setSerieList(List<Serie> serieList) {
this.serieList = serieList;
}
}
Dao:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.dao;
import assis.mvc.stateless.*;
import assis.mvc.domain.Imagem;
import assis.mvc.interfaces.ImagemInterface;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author Leonardo
*/
public class ImagemDao {
private EntityManager em;
public ImagemDao(EntityManager emm) {
em = emm;
}
public Imagem salvar(Imagem imagem) {
if (imagem.getCodigo() == null) {
em.persist(imagem);
} else {
em.merge(imagem);
}
return imagem;
}
public Imagem consultaPorId(Long id) {
Imagem imagem = null;
imagem = em.find(Imagem.class, id);
return imagem;
}
public void remove(Long id) {
Imagem imagem = consultaPorId(id);
em.remove(imagem);
}
public List<Imagem> consultaAll() {
Query q = em.createNamedQuery("Imagem.findAll");
return q.getResultList();
}
public List<Imagem> consultaPorTitulo(String nome) {
Query q = em.createNamedQuery("Imagem.findByNome");
q.setParameter("nome", nome);
return (List<Imagem>) q.getResultList();
}
}
Stateless:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.stateless;
import assis.mvc.dao.ImagemDao;
import assis.mvc.domain.Imagem;
import assis.mvc.interfaces.ImagemInterface;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author Leonardo
*/
@Stateless
public class ImagemStateless implements ImagemInterface {
@PersistenceContext(unitName = "pool")
private EntityManager em;
@Override
public Imagem salvar(Imagem imagem) {
ImagemDao dao = new ImagemDao(em);
return dao.salvar(imagem);
}
@Override
public Imagem consultaPorId(Long id) {
ImagemDao dao = new ImagemDao(em);
return dao.consultaPorId(id);
}
@Override
public void remove(Long id) {
ImagemDao dao = new ImagemDao(em);
dao.remove(id);
}
@Override
public List<Imagem> consultaAll() {
ImagemDao dao = new ImagemDao(em);
return dao.consultaAll();
}
@Override
public List<Imagem> consultaPorTitulo(String titulo) {
ImagemDao dao = new ImagemDao(em);
return dao.consultaPorTitulo(titulo);
}
}
Interface:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package assis.mvc.interfaces;
import assis.mvc.domain.Imagem;
import java.util.List;
import javax.ejb.Remote;
/**
*
* @author Leonardo
*/
@Remote
public interface ImagemInterface {
public Imagem salvar(Imagem imagem);
public Imagem consultaPorId(Long id);
public void remove(Long id);
public List<Imagem> consultaAll();
public List<Imagem> consultaPorTitulo(String titulo);
}
O pool está "ok", pois consigo me conectar,alguém poderia me ajudar?
Leonardo Assis
Curtir tópico
+ 0
Responder
Posts
14/01/2017
Leonardo Assis
Xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="pool" transaction-type="JTA">
<jta-data-source>jdbc/poll</jta-data-source>
<class>assis.mvc.domain.Imagem</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="pool" transaction-type="JTA">
<jta-data-source>jdbc/poll</jta-data-source>
<class>assis.mvc.domain.Imagem</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
Responder
Gostei + 0
16/01/2017
Jones Granatyr
Olá! Não vi seu código inteiro, mas esse erro geralmente ocorre quando você está acessando um objeto e ele ainda não foi criado com o "new". Sugiro colocar um break point e rodar ele passo a passo e ver se acha algo nesse sentido
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)