I have a problem with datasource, looks like openejb is using an
hsqldb
database instead of Oracle.
The error is: "table not found"
INFO: building session factory
19-gen-2009 12.43.36 org.hibernate.impl.SessionFactoryObjectFactory
addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: Running hbm2ddl schema update
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: fetching database metadata
19-gen-2009 12.43.36 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
GRAVE: could not get database metadata
java.sql.SQLException: Tabella non trovata in statement [select
sequence_name fr
om user_sequences]
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.jdbcStatement.executeQuery(Unknown Source)
at
org
.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingSt
atement.java:208)
at
org
.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingSt
atement.java:208)
at
org
.hibernate.tool.hbm2ddl.DatabaseMetadata.initSequences(DatabaseMet
adata.java:128)
at
org
.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.j
ava:46)
at
org
.hibernate.tool.hbm2ddl.DatabaseMetadata.<init>(DatabaseMetadata.j
ava:39)
at
org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:
129
)
at
org
.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:
314)
at
org
.hibernate.cfg.Configuration.buildSessionFactory(Configuration.jav
a:1300)
at
org
.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(Annotat
ionConfiguration.java:859)
at
org
.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Con
figuration.java:669)
at
org
.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFa
ctory(HibernatePersistence.java:132)
at
org
.apache.openejb.assembler.classic.PersistenceBuilder.createEntityM
anagerFactory(PersistenceBuilder.java:183)
at
org
.apache.openejb.assembler.classic.Assembler.createApplication(Asse
mbler.java:487)
at
org
.apache.openejb.assembler.classic.Assembler.createApplication(Asse
mbler.java:447)
at
org
.apache.openejb.assembler.classic.Assembler.buildContainerSystem(A
ssembler.java:365)
at
org
.apache.openejb.assembler.classic.Assembler.build(Assembler.java:2
77)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:299)
at
org
.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.jav
a:121)
Openejb.xml:
<?xml version="1.0" encoding="UTF-8"?>
<openejb>
<Container id="My CMP Container" type="CMP_ENTITY">
</Container>
<Container id="My BMP Container" type="BMP_ENTITY">
PoolSize 10
</Container>
<Container id="My Stateful Container" type="STATEFUL">
Passivator org.apache.openejb.core.stateful.SimplePassivater
TimeOut 20
Capacity 1000
BulkPassivate 100
</Container>
<Container id="My Stateless Container" type="STATELESS">
TimeOut 0
PoolSize 10
StrictPooling true
</Container>
<Resource id="MyDS" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged true
</Resource>
<Resource id="MyDSUn" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged false
</Resource>
<Resource id="MyOrclDS" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged true
</Resource>
<Resource id="MyOrclDSUn" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@localhost:1521:XE
UserName username
Password password
JtaManaged false
</Resource>
<Deployments dir="apps/" />
</openejb>
Persistence.xml:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="MyEM" transaction-type="JTA" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>MyDS</jta-data-source>
<non-jta-data-source>MyDSUn</non-jta-data-source>
<class>.</class>
[pojo classes]
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.cache.provider_class"
value="org.hibernate.cache.HashtableCacheProvider"
/>
<property
name="hibernate.transaction.manager_lookup_class"
value="org.hibernate.transaction.JBossTransactionManagerLookup" />
<property name="hibernate.hbm2ddl.auto"
value="update" />
<property name="hibernate.jdbc.batch_size"
value="0"/>
</properties>
</persistence-unit>
Openejb.log (why is openejb "Adjusting" the datasource for my EM?)
2009-01-19 12:43:30,217 - INFO - Configuring Service(id=Tomcat
Security
Service, type=SecurityService, provider-id=Tomcat Security Service)
2009-01-19 12:43:30,220 - INFO - Configuring Service(id=Default
Transaction
Manager, type=TransactionManager, provider-id=Default Transaction
Manager)
2009-01-19 12:43:30,222 - INFO - Configuring Service(id=MyDS,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,224 - INFO - Configuring Service(id=MyDSUn,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,225 - INFO - Configuring Service(id=MyOrclDS,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,227 - INFO - Configuring Service(id=MyOrclDSUn,
type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:30,230 - INFO - Configuring Service(id=My CMP
Container,
type=Container, provider-id=Default CMP Container)
2009-01-19 12:43:30,232 - INFO - Configuring Service(id=My BMP
Container,
type=Container, provider-id=Default BMP Container)
2009-01-19 12:43:30,234 - INFO - Configuring Service(id=My Stateful
Container, type=Container, provider-id=Default Stateful Container)
2009-01-19 12:43:30,235 - INFO - Configuring Service(id=My
Stateless
Container, type=Container, provider-id=Default Stateless Container)
2009-01-19 12:43:30,934 - INFO - Configuring enterprise
application:
C:\dev\apache-tomcat-6.0.18\apps\my-ejb.jar
2009-01-19 12:43:31,408 - INFO - Configuring
PersistenceUnit(name=MyEM,
provider=org.hibernate.ejb.HibernatePersistence)
2009-01-19 12:43:31,413 - INFO - Configuring Service(id=Default
JDBC
Database, type=Resource, provider-id=Default JDBC Database)
2009-01-19 12:43:31,415 - INFO - Configuring Service(id=Default
Unmanaged
JDBC Database, type=Resource, provider-id=Default Unmanaged JDBC
Database)
2009-01-19 12:43:31,416 - INFO - Auto-creating a Resource with id
'Default
JDBC Database' of type 'DataSource for 'MyEM'.
2009-01-19 12:43:31,416 - INFO - Auto-creating a Resource with id
'Default
Unmanaged JDBC Database' of type 'DataSource for 'MyEM'.
2009-01-19 12:43:31,416 - INFO - Configuring
PersistenceUnit(name=MyOrclEM,
provider=org.hibernate.ejb.HibernatePersistence)
2009-01-19 12:43:31,417 - INFO - Adjusting MyOrclEM <jta-data-
source> to
'Default JDBC Database'
2009-01-19 12:43:31,418 - INFO - Adjusting MyOrclEM <non-jta-data-
source>
to 'Default Unmanaged JDBC Database'
2009-01-19 12:43:31,447 - INFO - Enterprise application
"C:\dev\magsuite\ms-v2\apache-tomcat-6.0.18\apps\msuite-ejb.jar"
loaded.
All necessary jars are there: hibernates jars and oracle drivers.
Thank you.
Regards,
Paolo