Netbeans-8.2- lang.NullPointerException

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?
Leonardo Assis

Leonardo Assis

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>
Responder

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar