problema no netbeans
import br.com.dm.completejavaee.entity.Product;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author eduardo
*/
@Stateless
public class ProductSessionBean implements ProductSessionLocal {
@PersistenceContext
private EntityManager em;
@Override
public void addProduct(Product prod) throws BusinessViolation {
validateProduct(prod);
em.persist(prod);
}
@Override
public void updateProduct(Product prod) throws BusinessViolation {
validateProduct(prod);
em.merge(prod);
}
@Override
public void removeProduct(int productId) {
Product prod = em.find(Product.class, productId);
if (prod != null) {
em.remove(prod);
}
}
@Override
public Product getProducts(int productId) {
return em.find(Product.class, productId);
}
@Override
@SuppressWarnings(´unchecked´)
public List<Product> getProducts() {
Query query = em.createQuery(´select pr from Product pr´);
return query.getResultList();
}
private void validateProduct(Product prod) throws BusinessViolation {
boolean valid = true;
String msg = ´´;
if (prod.getId() == null) {
valid = false;
msg = ´Id invalid´;
} else
if (prod.getName() == null || ´´.equals(prod.getName())) {
valid = false;
msg = ´Name invalid´;
} else
if (prod.getPrice() < 0f) {
valid = false;
msg = ´Preço invalid´;
} else
if (!valid){
throw new BusinessViolation(msg);
}
}
public EntityManager getEm() {
return em;
}
public void setEm(EntityManager em) {
this.em = em;
}
}
java.lang.NullPointerException
at org.netbeans.api.java.source.JavaSource.<init>(JavaSource.java:329)
at org.netbeans.api.java.source.JavaSource.create(JavaSource.java:200)
at org.netbeans.api.java.source.JavaSource.create(JavaSource.java:184)
at org.netbeans.modules.j2ee.ejbverification.fixes.ExposeBusinessMethod.implement(ExposeBusinessMethod.java:116)
at org.netbeans.modules.editor.hints.HintsUI$1.run(HintsUI.java:586)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1030)
ta com problema com o @}Override.
por favor me ajudem
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
/**
*
* @author eduardo
*/
@Stateless
public class ProductSessionBean implements ProductSessionLocal {
@PersistenceContext
private EntityManager em;
@Override
public void addProduct(Product prod) throws BusinessViolation {
validateProduct(prod);
em.persist(prod);
}
@Override
public void updateProduct(Product prod) throws BusinessViolation {
validateProduct(prod);
em.merge(prod);
}
@Override
public void removeProduct(int productId) {
Product prod = em.find(Product.class, productId);
if (prod != null) {
em.remove(prod);
}
}
@Override
public Product getProducts(int productId) {
return em.find(Product.class, productId);
}
@Override
@SuppressWarnings(´unchecked´)
public List<Product> getProducts() {
Query query = em.createQuery(´select pr from Product pr´);
return query.getResultList();
}
private void validateProduct(Product prod) throws BusinessViolation {
boolean valid = true;
String msg = ´´;
if (prod.getId() == null) {
valid = false;
msg = ´Id invalid´;
} else
if (prod.getName() == null || ´´.equals(prod.getName())) {
valid = false;
msg = ´Name invalid´;
} else
if (prod.getPrice() < 0f) {
valid = false;
msg = ´Preço invalid´;
} else
if (!valid){
throw new BusinessViolation(msg);
}
}
public EntityManager getEm() {
return em;
}
public void setEm(EntityManager em) {
this.em = em;
}
}
java.lang.NullPointerException
at org.netbeans.api.java.source.JavaSource.<init>(JavaSource.java:329)
at org.netbeans.api.java.source.JavaSource.create(JavaSource.java:200)
at org.netbeans.api.java.source.JavaSource.create(JavaSource.java:184)
at org.netbeans.modules.j2ee.ejbverification.fixes.ExposeBusinessMethod.implement(ExposeBusinessMethod.java:116)
at org.netbeans.modules.editor.hints.HintsUI$1.run(HintsUI.java:586)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:577)
[catch] at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1030)
ta com problema com o @}Override.
por favor me ajudem
Eduenr1
Curtidas 0
Respostas
Dyego.carmo
16/09/2009
Opa !
Poderia descrever melhor o seu problema ?
Poderia descrever melhor o seu problema ?
GOSTEI 0
Discorpio
16/09/2009
Bom dia a todos.
O seu problema não está no @Override que é um diretiva de compilação em que orienta o compilador a sobrescrever o método que está declarado na Interface ´ProdutSessionLocal´.
O erro reportado ´java.lang.NullPointerException´ significa que voce está tentando utilizar métodos de um objeto que não foi instanciado na memória, e eu acredito que seja o EntityManager, porém não tenho certeza pois eu particularmente não conheço essa classe, não sei se ela é abstrata ou não, caso seja, voce não pode instanciá-la na memória, caso não ai sim voce pode instanciá-la.
Vejo que voce encapsulou essa variável assim:
Para evitar o NullPointer, no método getEm() coloque assim:
Agora devo alertá-lo se a classe EntityManager for um classe Abstrata então descarte o código acima e depure o seu código em outras classes e veja onde ele está com o NullPointer (Ponteiro Nulo).
O seu problema não está no @Override que é um diretiva de compilação em que orienta o compilador a sobrescrever o método que está declarado na Interface ´ProdutSessionLocal´.
O erro reportado ´java.lang.NullPointerException´ significa que voce está tentando utilizar métodos de um objeto que não foi instanciado na memória, e eu acredito que seja o EntityManager, porém não tenho certeza pois eu particularmente não conheço essa classe, não sei se ela é abstrata ou não, caso seja, voce não pode instanciá-la na memória, caso não ai sim voce pode instanciá-la.
Vejo que voce encapsulou essa variável assim:
@PersistenceContext private EntityManager em; .... .... .... public EntityManager getEm() { return em; } public void setEm(EntityManager em) { this.em = em; }
Para evitar o NullPointer, no método getEm() coloque assim:
public EntityManager getEm() { if (this.em==null) this.em = new EntityManager(); return em; }
Agora devo alertá-lo se a classe EntityManager for um classe Abstrata então descarte o código acima e depure o seu código em outras classes e veja onde ele está com o NullPointer (Ponteiro Nulo).
GOSTEI 0
Dyego.carmo
16/09/2009
Lembrete:
A sugestão do nosso amigo ai em cima não funciona se você está dentro de um container EJB (e é o que parece)
A sugestão do nosso amigo ai em cima não funciona se você está dentro de um container EJB (e é o que parece)
GOSTEI 0
Discorpio
16/09/2009
Bom dia a todos.
Como disse antes, eu não conheco o Enterprise JavaBeans porque não trabalho com ele, e nem sabia de sua classe EntityManager, porém sei que é um dos principais componentes da plataforma J2EE (Java 2 Enterprise Edition). É um componente do tipo servidor que executa no container do servidor de aplicação. Os principais objectivos da tecnologia EJB são fornecer um rápido e simplificado desenvolvimento de aplicações Java baseado em componentes distribuídas, transacionais, seguras e portáveis.
Eu não utilizo, pois prefiro criar as minhas próprias classes de regra de negócios, trabalhando com Servlets e criando minhas próprias Action
Porém de uma coisa eu tenho certeza, o NullPointerException é um erro onde voce está fazendo referência (invocando métodos) a um objeto que não está instanciado em memória.
Como disse antes, eu não conheco o Enterprise JavaBeans porque não trabalho com ele, e nem sabia de sua classe EntityManager, porém sei que é um dos principais componentes da plataforma J2EE (Java 2 Enterprise Edition). É um componente do tipo servidor que executa no container do servidor de aplicação. Os principais objectivos da tecnologia EJB são fornecer um rápido e simplificado desenvolvimento de aplicações Java baseado em componentes distribuídas, transacionais, seguras e portáveis.
Eu não utilizo, pois prefiro criar as minhas próprias classes de regra de negócios, trabalhando com Servlets e criando minhas próprias Action
Porém de uma coisa eu tenho certeza, o NullPointerException é um erro onde voce está fazendo referência (invocando métodos) a um objeto que não está instanciado em memória.
GOSTEI 0
Dyego Carmo
16/09/2009
Atualize para o NetBeans 6.8
Isto era um BUG
Isto era um BUG
GOSTEI 0
Carlos Mazzi
16/09/2009
Deu certo amigao?
GOSTEI 0
Dyego Carmo
16/09/2009
Resolvido ?
GOSTEI 0