Hi,

I'm having an issue deploying to JBoss 4.0.5-ejb3. When I try to inject my 
EntityManager in my code: 

  | @PersistenceContext EntityManager em;
  | 
it is always null. However, if I do:

  |  EntityManagerFactory emf = Persistence.createEntityManagerFactory("myDS");
  | em = emf.createEntityManager();
  | 

This is my setup:

I have a java web service that calls my Stateless Session bean. In my session 
bean, I try to inject the PersistenceContext, so I can utilize my Entity Beans.

I have a .ear archive that I deploy to the server/default/deploy directory 
(using JBuilder 2007) - with a .war (that contains my web service) and a .jar 
that contains my beans (entity and session). 

I have everything annotated according to the documentation. All of the 
documentation says that it should work. 
ISampleClass is the @Local Interface class.


  | @Stateless (name="SampleClass")
  | public class SampleClass implements ISampleClass
  |  
  |    @PersistenceContext (unitName="myDS")
  |    EntityManager em;
  |  
  |   public Resource findResource() { 
  |       Resource resource = em.find(Resource.class, 1);
  |       return resource;
  |    }
  | }
  | 

I've also tried: @TransactionAttribute (TransactionAttributeType.REQUIRED)  at 
the class and method level.


I wrote a client that calls the web service (Axis 1.3 client generated). It 
calls the service fine, but I get a NullPointerException when it tries to call 
the em.persist() method inside my stateless session bean.

Here is my persistence.xml file:

  | ><persistence-unit name="myDS"> 
  |             <provider>org.hibernate.ejb.HibernatePersistence</provider> 
  |             <jta-data-source>java:/myDS</jta-data-source>
  |             <properties>
  |                     <property name="hibernate.hbm2ddl.auto" 
value="validate"></property>
  |                     <property name="hibernate.dialect"
  |                             
value="org.hibernate.dialect.MySQLInnoDBDialect" />
  |                     <property name="hibernate.session_factory_name"
  |                             value="java:hibernate/HibernateFactory" />
  |                     <property name="transaction.factory_class"
  |                             
value="org.hibernate.transaction.JTATransactionFactory" />
  |                     <property name="hibernate.cache.use_second_level_cache"
  |                             value="false" />
  |                     <property 
name="hibernate.transaction.manager_lookup_class"
  |                             
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
  |             </properties>
  |     </persistence-unit>
  | 

I've also tried explicity setting the transaction-type to "JTA" at the 
persistence-unit level, not setting the provider and leaving the properties 
section empty.

Here is my mysql-ds.xml file:

  | <datasources>
  |     <local-tx-datasource>
  |             <jndi-name>myDS</jndi-name>
  |             
<connection-url>jdbc:mysql://localhost:3306/myDB</connection-url>
  |             <driver-class>com.mysql.jdbc.Driver</driver-class>
  |             <user-name>myuser</user-name>
  |             <password>mypass</password>
  |             <connection-property 
name="socketFactory">com.mysql.jdbc.NamedPipeSocketFactory</connection-property>
  |             
<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
  | 

And looking at the JBoss logs with debug on I see this (which seems to me that 
it's loading correctly):

anonymous wrote : 
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] starting 
service jboss.j2ee:service=EJB3,module=MyApp.jar
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.ejb3.Ejb3Module] Starting 
jboss.j2ee:service=EJB3,module=MyApp.jar
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.ejb3.JmxKernelAbstraction] 
creating wrapper delegate for: org.jboss.ejb3.entity.PersistenceUnitDeployment
  | 2007-04-24 09:00:51,656 INFO  [org.jboss.ejb3.JmxKernelAbstraction] 
installing MBean: persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS 
with dependencies
  | 2007-04-24 09:00:51,656 INFO  [org.jboss.ejb3.JmxKernelAbstraction]         
jboss.jca:name=pmacDS,service=DataSourceBinding
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] Creating 
service persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] adding 
depends in ServiceController.register: 
[jboss.jca:name=myDS,service=DataSourceBinding]
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] 
recording that persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS 
depends on jboss.jca:name=pmacDS,service=DataSourceBinding
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] 
Creating persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] 
Created persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] Creating 
dependent components for: 
persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS dependents are: []
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.system.ServiceController] starting 
service persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS
  | 2007-04-24 09:00:51,656 DEBUG [org.jboss.ejb3.ServiceDelegateWrapper] 
Starting persistence.units:ear=MyEar.ear,jar=MyApp.jar,unitName=myDS
  | 2007-04-24 09:00:51,671 DEBUG 
[org.jboss.ejb3.entity.PersistenceUnitDeployment] Found persistence.xml file in 
EJB3 jar
  | 2007-04-24 09:00:51,687 INFO  [org.hibernate.ejb.Version] Hibernate 
EntityManager 3.2.0.GA
  | 2007-04-24 09:00:51,703 INFO  [org.hibernate.cfg.annotations.Version] 
Hibernate Annotations 3.2.0.GA
  | 2007-04-24 09:00:51,718 INFO  [org.hibernate.cfg.Environment] Hibernate 
3.2.0.ga
  | 2007-04-24 09:00:51,734 INFO  [org.hibernate.cfg.Environment] 
hibernate.properties not found
  | 2007-04-24 09:00:51,734 INFO  [org.hibernate.cfg.Environment] Bytecode 
provider name : javassist
  | 2007-04-24 09:00:51,734 INFO  [org.hibernate.cfg.Environment] using JDK 1.4 
java.sql.Timestamp handling 
  | 2007-04-24 09:00:51,828 DEBUG [org.hibernate.ejb.Ejb3Configuration] 
2007-04-20 09:31:26,390 DEBUG [org.hibernate.ejb.Ejb3Configuration] Processing 
PersistenceUnitInfo [
  | name: myDS
  | persistence provider classname: org.hibernate.ejb.HibernatePersistence
  | classloader: [EMAIL PROTECTED] 
url=file:/C:/jboss-4.0.5.GA/server/default/tmp/deploy/tmp30571MyEAR.ear 
,addedOrder=47}
  | Temporary classloader: null
  | excludeUnlistedClasses: false
  | JTA datasource: [EMAIL PROTECTED]
  | Non JTA datasource: null
  | Transaction type: JTA
  | PU root URL: 
file:/C:/jboss-4.0.5.GA/server/default/tmp/deploy/tmp30571MyEAR.ear-contents/MyJAR.jar
  | Jar files URLs []
  | Managed classes names [ <list of my classes>]
  | Mapping files names []
  | Properties [
  | hibernate.jacc.ctx.id: MyJAR.jar
  | hibernate.jndi.java.naming.factory.initial: 
org.jnp.interfaces.NamingContextFactory
  | hibernate.transaction.manager_lookup_class: 
org.hibernate.transaction.JBossTransactionManagerLookup
  | hibernate.cache.provider_class: org.hibernate.cache.HashtableCacheProvider
  | hibernate.dialect: org.hibernate.dialect.MySQLInnoDBDialect
  | hibernate.bytecode.use_reflection_optimizer: false
  | hibernate.jndi.java.naming.factory.url.pkgs: 
org.jboss.naming:org.jnp.interfaces
  | hibernate.bytecode.provider: javassist
  | 

Any ideas? 

Thanks,

Bryan

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4040561#4040561

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4040561
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to