Another NULL Pointer Exception on Entity Manager =/
tchello Feb 11, 2009 12:21 PMHi!
I've been looking so far on google but i could not find it.
I'm still learning EJB3 and trying to do a simple example to discovery how it works (including annotations and application servers like JBoss 4.2.2).
Could you help-me?
Here is the code samples:
A simple entity
package EJBClasses;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
*
* @author Tchello
*/
@Entity
@Table(name="endereco")
public class Endereco implements Serializable {
//--------------------------------------------------------------------------
private Integer codigo;
private String rua;
private Integer numero;
private String bairro;
private String cep;
private String cidade;
private String estado;
private String pais;
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
/** Creates a new instance of Endereco */
public Endereco() {
}
//--------------------------------------------------------------------------
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name="codigo")
public Integer getCodigo() {
return codigo;
}
//--------------------------------------------------------------------------
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
//--------------------------------------------------------------------------
@Column(name="rua")
public String getRua() {
return rua;
}
//--------------------------------------------------------------------------
public void setRua(String rua) {
this.rua = rua;
}
//--------------------------------------------------------------------------
@Column(name="numero")
public Integer getNumero() {
return numero;
}
//--------------------------------------------------------------------------
public void setNumero(Integer numero) {
this.numero = numero;
}
//--------------------------------------------------------------------------
@Column(name="bairro")
public String getBairro() {
return bairro;
}
//--------------------------------------------------------------------------
public void setBairro(String bairro) {
this.bairro = bairro;
}
//--------------------------------------------------------------------------
@Column(name="cep")
public String getCep() {
return cep;
}
//--------------------------------------------------------------------------
public void setCep(String cep) {
this.cep = cep;
}
//--------------------------------------------------------------------------
@Column(name="cidade")
public String getCidade() {
return cidade;
}
//--------------------------------------------------------------------------
public void setCidade(String cidade) {
this.cidade = cidade;
}
//--------------------------------------------------------------------------
@Column(name="estado")
public String getEstado() {
return estado;
}
//--------------------------------------------------------------------------
public void setEstado(String estado) {
this.estado = estado;
}
//--------------------------------------------------------------------------
@Column(name="pais")
public String getPais() {
return pais;
}
//--------------------------------------------------------------------------
public void setPais(String pais) {
this.pais = pais;
}
//--------------------------------------------------------------------------
}
My Entity Manager and interfaces:
@Stateless
public class ManagerBean implements Manager,ManagerRemote{
@PersistenceContext(unitName="MyPostgresDS")//unitName="myunit"
private EntityManager em;
/** Creates a new instance of ManagerBean */
public ManagerBean() {
}
public void salvar(){
Endereco endereco = new Endereco();
//endereco.setCodigo(3);
endereco.setBairro("vila do fulano");
endereco.setCep("1232413");
endereco.setCidade("Campinas");
endereco.setEstado("Sao Paulo");
endereco.setNumero(123);
endereco.setPais("Brasil");
endereco.setRua("Rua dumal");
System.out.println("Persisting...");
em.getTransaction().begin();
em.persist(endereco);
em.getTransaction().commit();
}
}
The main:
public class EntityInstructorClient {
public static void main(String args[]){
System.out.println("Main...");
ManagerBean bean = new ManagerBean();
bean.salvar();
}
}
I think the error could be on xml files, what i'm not familiar yet.
Here:
persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="myunit" transaction-type ="JTA"> <jta-data-source>java:MyPostgresDS</jta-data-source> <class>EJBClasses.ManagerBean</class> <properties> <propertie name="org.hibernate.hbm2ddl" value="create-table"/> <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> </properties> </persistence-unit> </persistence>
jboss.xml
<datasources> <local-tx-datasource> <jndi-name>MyPostegresDS</jndi-name> <connection-url>jdbc/:postgresql://192.168.0.200:5432/netejb</connection-url> <driver-class>org.postgresql.Driver</driver-class> <user-name>postgres</user-name> <password>postgres</password> <min-pool-size>5</min-pool-size> <max-pool-size>20</max-pool-size> <idle-timeout-minutes>5</idle-timeout-minutes> <metadata> <type-mapping>PostgreSQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
All i got is:
Exception in thread "main" java.lang.NullPointerException
at EJBClasses.ManagerBean.salvar(ManagerBean.java:42)
at EJBClasses.EntityInstructorClient.main(EntityInstructorClient.java:23)
Java Result: 1
What am i missing? I'm trying so hard but there is so many things to learn, can someone help me?
I am using NetBeans 5.5.1, JBoss 4.2.2 and EJB 3 (i cant change the versions).
Thank you!