Hi Sahoo,
I have taken your EJB as OSGI service example (
http://weblogs.java.net/blog/ss141213/archive/2010/03/30/ejb-osgi-service-demo-eclipsecon) and modified the pom.xml and persistence.xml to use Hibernate. Unfortunately it doesn't seem to work.
I am using Glassfish 3.1 b04 with the 15 Jun snapshots of osgi-jpa and osgi-ejb. When deploying your unmodified examples it works fine, I can use the webclient to create users and login. When I use the hibernate sample it deploys, but does not attempt to do anything with the database. If I don't bundle the hibernate dependencies it will complain about not finding the necessary hibernate provider so I think my persistence.xml is setup ok.
Attempting to create a user with Hibernate I get a null pointer when accessing the injected EntityManager in UserAuthServiceEJB.
I will attached the modified pom.xml and persistence.xml for the ejb service project. If you are able to have a quick look into it that would be fantastic.
Many thanks
Cameron
Here is the deployment log from the Hibernate service bundle:
--------------------------------------------------------------
INFO: Bundle having id 299 is a JPA bundle
INFO: Exploded bundle sahoo.hybridapp.example2.service [299] at C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp4222932932078197703
INFO: Source = C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp4222932932078197703, Target = C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\enhanced-osgiapp9151953982023520446
WARNING: Unable to delete C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp4222932932078197703
INFO: Deleted C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\enhanced-osgiapp9151953982023520446
INFO: Installed C:\web\glassfish-3.1-b04\glassfish\domains\domain1\autodeploy\bundles\hybridapp2-service.jar
INFO: Expanded at file:/C:/DOCUME~1/CAMERO~1/LOCALS~1/Temp/osgiapp3738875961028657485/
INFO: Portable JNDI names for EJB UserAuthServiceEJB : [java:global/sahoo.hybridapp.example2.service_1.0.0.SNAPSHOT/UserAuthServiceEJB, java:global/sahoo.hybridapp.example2.service_1.0.0.SNAPSHOT/UserAuthServiceEJB!sahoo.hybridapp.example2.UserAuthService]
INFO: addingService: Found 1 no. of EJBs
INFO: Session descriptor
sessionType StatelessDisplay Names:
lang[en] = UserAuthServiceEJB
<== No attribute ==>
homeClassName null
remoteClassName null
remoteBusinessIntfs []
localhomeClassName null
localClassName null
localBusinessIntfs [sahoo.hybridapp.example2.UserAuthService]
isLocalBean false
jndiName
ejbClassName sahoo.hybridapp.example2.service.UserAuthServiceEJB
transactionType Container
methodContainerTransactions {Method Descriptor name: login params: (java.lang.String p1, java.lang.String p2) intf: Local=Container Transaction: Required@, Method Descriptor name: register params: (java.lang.String p1, java.lang.String p2) intf: Local=Container Transaction: Required@, Method Descriptor name: remove params: (java.lang.Object p1) intf: LocalHome=Container Transaction: Required@, Method Descriptor name: remove params: () intf: Local=Container Transaction: Required@, Method Descriptor name: create params: (java.lang.String p1) intf: LocalHome=Container Transaction: Required@}
environmentProperties
ejbReferences
jmsDestReferences
messageDestReferences
resourceReferences
serviceReferences
roleReferences
method-permission->method: unchecked -> [Method Descriptor name: register params: (java.lang.String p1, java.lang.String p2) intf: Local, Method Descriptor name: login params: (java.lang.String p1, java.lang.String p2) intf: Local]
INFO: deployed bundle sahoo.hybridapp.example2.service [299] at file:/C:/DOCUME~1/CAMERO~1/LOCALS~1/Temp/osgiapp3738875961028657485/
INFO: Started bundle: file:/C:/web/glassfish-3.1-b04/glassfish/domains/domain1/autodeploy/bundles/hybridapp2-service.jar
Here is the deployment log from the eclipselink service bundle:
----------------------
INFO: Bundle having id 301 is a JPA bundle
INFO: Exploded bundle sahoo.hybridapp.example2.service [301] at C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp7335066912067051839
INFO: Source = C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp7335066912067051839, Target = C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\enhanced-osgiapp9141039397930523248
WARNING: Unable to delete C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\osgiapp7335066912067051839
INFO: Installed C:\web\glassfish-3.1-b04\glassfish\domains\domain1\autodeploy\bundles\hybridapp2-service.jar
INFO: Deleted C:\DOCUME~1\CAMERO~1\LOCALS~1\Temp\enhanced-osgiapp9141039397930523248
INFO: Expanded at file:/C:/DOCUME~1/CAMERO~1/LOCALS~1/Temp/osgiapp9190985392879581429/
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: addTransformer called org.glassfish.persistence.jpa.JPADeployer$ProviderContainerContractInfoImpl$1_a
INFO: addTransformer called org.glassfish.persistence.jpa.JPADeployer$ProviderContainerContractInfoImpl$1_a
INFO: Portable JNDI names for EJB UserAuthServiceEJB : [java:global/sahoo.hybridapp.example2.service_1.0.0.SNAPSHOT/UserAuthServiceEJB, java:global/sahoo.hybridapp.example2.service_1.0.0.SNAPSHOT/UserAuthServiceEJB!sahoo.hybridapp.example2.UserAuthService]
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: EclipseLink, version: Eclipse Persistence Services - 2.1.0.v20100529-r7411
INFO: file:/C:/DOCUME~1/CAMERO~1/LOCALS~1/Temp/osgiapp9190985392879581429/_hybridapp login successful
WARNING: Got SQLException executing statement "CREATE TABLE USERNAME (NAME VARCHAR(255) NOT NULL, PASSWORD VARCHAR(255), PRIMARY KEY (NAME))": java.sql.SQLException: Table/View 'USERNAME' already exists in Schema 'APP'.
INFO: addingService: Found 1 no. of EJBs
INFO: Session descriptor
sessionType StatelessDisplay Names:
lang[en] = UserAuthServiceEJB
<== No attribute ==>
homeClassName null
remoteClassName null
remoteBusinessIntfs []
localhomeClassName null
localClassName null
localBusinessIntfs [sahoo.hybridapp.example2.UserAuthService]
isLocalBean false
jndiName
ejbClassName sahoo.hybridapp.example2.service.UserAuthServiceEJB
transactionType Container
methodContainerTransactions {Method Descriptor name: login params: (java.lang.String p1, java.lang.String p2) intf: Local=Container Transaction: Required@, Method Descriptor name: register params: (java.lang.String p1, java.lang.String p2) intf: Local=Container Transaction: Required@, Method Descriptor name: remove params: (java.lang.Object p1) intf: LocalHome=Container Transaction: Required@, Method Descriptor name: remove params: () intf: Local=Container Transaction: Required@, Method Descriptor name: create params: (java.lang.String p1) intf: LocalHome=Container Transaction: Required@}
environmentProperties
ejbReferences
jmsDestReferences
messageDestReferences
resourceReferences
serviceReferences
roleReferences
method-permission->method: unchecked -> [Method Descriptor name: register params: (java.lang.String p1, java.lang.String p2) intf: Local, Method Descriptor name: login params: (java.lang.String p1, java.lang.String p2) intf: Local]
INFO: deployed bundle sahoo.hybridapp.example2.service [301] at file:/C:/DOCUME~1/CAMERO~1/LOCALS~1/Temp/osgiapp9190985392879581429/
INFO: Started bundle: file:/C:/web/glassfish-3.1-b04/glassfish/domains/domain1/autodeploy/bundles/hybridapp2-service.jar
[Message sent by forum member 'cameronr']
http://forums.java.net/jive/thread.jspa?messageID=474446