I was my understanding that since Tomcat's JNDI is read-only, it is not usable and once JBoss Embedded is installed, that is the JNDI provider. Therefore, providing a context for Tomcat is unnecessary.
I forgot to provide info on where I define my JDBC. I put it in a file called hibernate-ds.xml:
<datasources>
<local-tx-datasource>
<jndi-name>gaDatasource</jndi-name>
<connection-url>jdbc:mysql://vijay:3306/xxx</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>xx</user-name>
<password>xx</password>
</local-tx-datasource>
</datasources>
Also, here are the versions of the software:
Tomcat 6.0.14
embedded-jboss-beta3.zip
Seam 2.0.1.CR1
Here are some relevant excerpts from my log. First the JBoss Embedded stuff. NOTE: This shows that the ConnectionFactoryBindingService successfully bound gaDatasource to JNDI (java:gaDatasource), and then started a persistence unit with name gadb.
WARN [org.jboss.mx.loading.UnifiedLoaderRepository3] Tried to add non-URLClassLoader. Ignored
WARN [org.jboss.aop.deployment.AspectManagerService] Could not find base-aspects.xml file in the resources of org.apache.catalina.loader.StandardClassLoader@b6ece5
INFO [org.jboss.aop.deployers.AspectDeployer] Deploying xml into org.jboss.aop.AspectManager@77baf4 for org.apache.catalina.loader.StandardClassLoader@b6ece5
INFO [org.jboss.resource.deployers.RARDeployment] Required license terms exist, view vfsfile:/C:/apache-tomcat-6.0.14/lib/deploy/jboss-local-jdbc.rar/META-INF/ra.xml
INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
INFO [org.jboss.resource.deployers.RARDeployment] Required license terms exist, view vfsfile:/C:/apache-tomcat-6.0.14/lib/deploy/jboss-xa-jdbc.rar/META-INF/ra.xml
INFO [org.jboss.resource.deployers.RARDeployment] Required license terms exist, view vfsfile:/C:/apache-tomcat-6.0.14/lib/deploy/jms-ra.rar/META-INF/ra.xml
WARN [org.jboss.jms.server.security.SecurityMetadataStore] WARNING! POTENTIAL SECURITY RISK. It has been detected that the MessageSucker component which sucks messages from one node to another has not had its password changed fro
m the installation default. Please see the JBoss Messaging user guide for instructions on how to do this.
INFO [org.jboss.jms.server.ServerPeer] JBoss Messaging 1.4.0.SP1 server [0] started
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] Connector bisocket://bevans:4457 has leasing enabled, lease period 10000 milliseconds
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@1d22ddb started
WARN [org.jboss.jms.server.connectionfactory.ConnectionFactoryJNDIMapper] supportsFailover attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non clust
ered. So connection factory will *not* support failover
WARN [org.jboss.jms.server.connectionfactory.ConnectionFactoryJNDIMapper] supportsLoadBalancing attribute is true on connection factory: jboss.messaging.connectionfactory:service=ClusteredConnectionFactory but post office is non
clustered. So connection factory will *not* support load balancing
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] Connector bisocket://bevans:4457 has leasing enabled, lease period 10000 milliseconds
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@9aa764 started
INFO [org.jboss.jms.server.destination.QueueService] Queue[/queue/DLQ] started, fullSize=200000, pageSize=2000, downCacheSize=2000
INFO [org.jboss.jms.server.destination.QueueService] Queue[/queue/ExpiryQueue] started, fullSize=200000, pageSize=2000, downCacheSize=2000
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] Connector bisocket://bevans:4457 has leasing enabled, lease period 10000 milliseconds
INFO [org.jboss.jms.server.connectionfactory.ConnectionFactory] org.jboss.jms.server.connectionfactory.ConnectionFactory@30cd64 started
INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
Mar 12, 2008 7:26:20 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 12, 2008 7:26:20 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
Mar 12, 2008 7:26:20 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive newRiskApp.war
Mar 12, 2008 7:26:20 AM org.apache.catalina.loader.WebappLoader start
INFO: Dual registration of jndi stream handler: factory already defined
INFO [org.jboss.ejb3.deployers.PersistenceUnitParsingDeployer] Found persistence units [org.jboss.ejb3.metadata.jpa.spec.PersistenceUnitMetaData@30cefd{name=gadb}]
WARN [org.jboss.xb.builder.runtime.CollectionPropertyHandler] ClassInfo.getDeclaredConstructor(null) didn't work for org.jboss.metadata.ejb.spec.InterceptorClassesMetaData, found the default ctor in ClassInfo.getDeclaredConstruct
ors()
INFO [org.jboss.ejb3.deployers.AppClientScanningDeployer] mainClass = class com.lowagie.tools.ToolboxAvailable
INFO [org.jboss.ejb3.deployers.AppClientScanningDeployer] mainClass = class org.jboss.cache.Version
INFO [org.jboss.ejb3.deployers.AppClientScanningDeployer] mainClass = class org.jboss.kernel.plugins.bootstrap.standalone.StandaloneBootstrap
INFO [org.jboss.ejb3.deployers.AppClientScanningDeployer] mainClass = class org.jgroups.Version
INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:jar=jboss-seam.jar,name=TimerServiceDispatcher,service=EJB3 with dependencies:
INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
INFO [org.jboss.ejb3.MCKernelAbstraction] Class:org.jboss.seam.async.LocalTimerServiceDispatcher
INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: org.jboss.seam.async.TimerServiceDispatcher ejbName: TimerServiceDispatcher
WARN [org.jboss.ejb3.timerservice.jboss.JBossTimerServiceFactory] TIMER SERVICE IS NOT INSTALLED
INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:jar=jboss-seam.jar,name=EjbSynchronizations,service=EJB3 with dependencies:
INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
INFO [org.jboss.ejb3.MCKernelAbstraction] Class:org.jboss.seam.transaction.LocalEjbSynchronizations
INFO [org.jboss.ejb3.EJBContainer] STARTED EJB: org.jboss.seam.transaction.EjbSynchronizations ejbName: EjbSynchronizations
INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: persistence.units:unitName=gadb with dependencies:
INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
INFO [org.jboss.resource.connectionmanager.ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=gaDatasource' to JNDI name 'java:gaDatasource'
INFO [org.jboss.ejb3.entity.PersistenceUnitDeployment] Starting persistence unit persistence.units:unitName=gadb
INFO [org.hibernate.cfg.annotations.Version] Hibernate Annotations 3.3.1.Beta1
INFO [org.hibernate.cfg.Environment] Hibernate 3.2.4.sp1
INFO [org.hibernate.cfg.Environment] hibernate.properties not found
INFO [org.hibernate.cfg.Environment] Bytecode provider name : javassist
INFO [org.hibernate.cfg.Environment] using JDK 1.4 java.sql.Timestamp handling
INFO [org.hibernate.ejb.Version] Hibernate EntityManager 3.3.2.Beta1
INFO [org.hibernate.ejb.Ejb3Configuration] Processing PersistenceUnitInfo [
name: gadb
...]
WARN [org.hibernate.ejb.Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
After this, the hibernate.cfg.xml file is read and here is where it should pick up the JNDI configured JDBC, but it fails:
WARN [org.hibernate.connection.UserSuppliedConnectionProvider] No connection properties specified - the user must supply JDBC connections
It is then later that the SeamListener tries to get a handle that failure is fatal.