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!