problema no netbeans

16/09/2009

1

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


Responder

Posts

18/09/2009

Dyego.carmo

Opa !

Poderia descrever melhor o seu problema ?


Responder

08/10/2009

Discorpio

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:

  @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).


Responder

08/10/2009

Dyego.carmo

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)


Responder

08/10/2009

Discorpio

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.


Responder

30/04/2010

Dyego Carmo

Atualize para o NetBeans 6.8

Isto era um BUG
Responder

08/06/2010

Carlos Mazzi

Deu certo amigao?
Responder

11/06/2010

Dyego Carmo

Resolvido ?
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira