[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - EntityManager Injection, Null Pointer Exception. (Sorry...)
repkin
do-not-reply at jboss.com
Tue Jun 17 09:45:46 EDT 2008
I wanted the entitymanager have been injected by the container. But after a lot of trial, I decided to ask the question.
Here is the situation,
My ear file structure:
| surgeonfish.ear
| |----surgeonfish-ds.xml
| |----META-INF
| |----application.xml
| |----jboss-app.xml
| |----MANIFEST.MF
| |----surgeonfish.jar
| |----com.beans...
| |----META-INF
| |----persistence.xml
| |----MANIFEST.MF
| |----surgeonfish.war
| |----META-INF
| |----MANIFEST.MF
| |----WEB-INF
| |----classes
| |----lib
| |----web.xml
|
--------
surgeonfish-ds.xml:
| <?xml version="1.0" encoding="UTF-8"?>
| <datasources>
| <local-tx-datasource>
| <jndi-name>time_reporting_data_source</jndi-name>
| <connection-url>jdbc:mysql://localhost:3306/timereporting</connection-url>
| <driver-class>com.mysql.jdbc.Driver</driver-class>
| <user-name>root</user-name>
| <password>test</password>
| <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
| <metadata>
| <type-mapping>mySQL</type-mapping>
| </metadata>
| </local-tx-datasource>
| </datasources>
|
----------------
application.xml
| <application>
| <display-name>Surgeonfish</display-name>
| <module>
| <web>
| <web-uri>surgeonfish.war</web-uri>
| <context-root>/surgeonfish</context-root>
| </web>
| </module>
| <module>
| <ejb>surgeonfish.jar</ejb>
| </module>
| </application>
|
---------------
jboss-app.xml:
| <jboss-app>
| <module>
| <service>surgeonfish-ds.xml</service>
| </module>
| <loader-repository>
| surgeonfish:archive=surgeonfish.ear
| </loader-repository>
| </jboss-app>
|
--------------
persistence.xml:
| <persistence>
| <persistence-unit name="time_report_persistence_context">
| <provider>org.hibernate.ejb.HibernatePersistence</provider>
| <jta-data-source>java:/time_reporting_data_source</jta-data-source>
| <jar-file>../surgeonfish.jar</jar-file>
| <properties>
| <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
| <property name="hibernate.show_sql" value="true"/>
| <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
| <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
| </properties>
| </persistence-unit>
| </persistence>
|
----------------------
Here my test bean:
| package com.xyz...;
|
|
| import javax.ejb.Local;
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.EntityManagerFactory;
| import javax.persistence.Persistence;
| import javax.persistence.PersistenceContext;
| import org.apache.commons.logging.Log;
| import org.apache.commons.logging.LogFactory;
|
| @Stateless
| @Local(value=PrStaffInterface.class)
| public class PrStaffHome {
|
| private static final Log log = LogFactory.getLog(PrStaffHome.class);
|
| @PersistenceContext(unitName="time_report_persistence_context")
| private EntityManager entityManager;
|
| public PrStaff findById(Integer id) {
| log.debug("getting PrStaff instance with id: " + id);
| try {
| /*
| EntityManagerFactory emf = Persistence.createEntityManagerFactory("time_report_persistence_context");
| EntityManager em = emf.createEntityManager();
| PrStaff instance1 = em.find(PrStaff.class, id);
| ---this lines working without any error...---
| */
|
| PrStaff instance = entityManager.find(PrStaff.class, id);->I am taking null pointer exception here...
| System.out.println("instance:"+instance);
| log.debug("get successful");
| return instance;
| } catch (RuntimeException re) {
| log.error("get failed", re);
| throw re;
| }
| }
| }
|
I cant find reason, why container is not injecting the entity manager. Of course I am missing something but I cant find. Thanks for your helps...
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4158701#4158701
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4158701
More information about the jboss-user
mailing list