The datasource names in your persistence.xml (DBFirst, DBSec) do not
match the names of the datasources you configured in your openejb.xml
(DBM, DBL).
I'm suspicious of this line in the persistence.xml:
<property name="Context.INITIAL_CONTEXT_FACTORY"
value="org.apache.openejb.client.LocalInitialContextFactory" />
I don't think any good can come to that as the only thing you can
lookup from the LocalInitialContextFactory is EJB references. I
suspect that might be there for the transaction manager lookup. We do
ship with an implementation the Toplink JTATransactionController
interface and will set it if we see you are using Toplink as your
persistence provider, so all should work without any OpenEJB-specific
flags in your persistence properties.
If you still see the issue, post the openejb.log output. That should
help us see how everything is being built.
-David
On Feb 20, 2009, at 4:19 AM, petko wrote:
Hello ,
In my project i am using OpenEJB with Tomcat and Oracle 10g with
Toplink as
provider
I have problems configuring the persistence units and/or
datasources. I am
not quite sure what the problem is.
The structure of ejb jar folder is:
-projectjar.jar
--com
--META-INF,
where in META-INF folder i have only two xml files
-- ejb-jar.xml
-- persistence.xml
Because i have two database, i have two persistence-unit with
different
names PUM and PUL
Content of persistence.xml is:
<persistence version="1.0" 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">
<persistence-unit name="PUM" transaction-type="JTA">
<
provider
>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</
provider>
<jta-data-source>DBFirst</jta-data-source>
<non-jta-data-source>DBFirstUnmanaged</non-jta-data-source>
<class>com.Client</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="toplink.logging.level" value="WARNING" />
<property name="toplink.logging.level.sql" value="FINEST" />
<property name="toplink.logging.level.ejb" value="FINEST" />
<property name="Context.INITIAL_CONTEXT_FACTORY"
value="org.apache.openejb.client.LocalInitialContextFactory" />
</properties>
</persistence-unit>
<persistence-unit name="PUL" transaction-type="JTA">
<
provider
>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</
provider>
<jta-data-source>DBSec</jta-data-source>
<non-jta-data-source>DBSecUnmanaged</non-jta-data-source>
<class>com.Tasks</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="toplink.logging.level" value="WARNING" />
<property name="toplink.logging.level.sql" value="FINEST" />
<property name="toplink.logging.level.ejb" value="FINEST" />
<property name="Context.INITIAL_CONTEXT_FACTORY"
value="org.apache.openejb.client.LocalInitialContextFactory" />
</properties>
</persistence-unit>
Content of ejb-jar is:
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
metadata-complete="true" version="3.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<display-name>ClientFacade</display-name>
<ejb-name>ClientFacade</ejb-name>
<business-remote>com.ClientFacadeRemote</business-remote>
<ejb-class>com.ClientFacade</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<persistence-context-ref>
<persistence-context-ref-name>com.ClientFacade/em</persistence-
context-ref-name>
<persistence-unit-name>PUM</persistence-unit-name>
<persistence-context-type>Transaction</persistence-context-type>
<injection-target>
<injection-target-class>com.ClientFacade</injection-target-class>
<injection-target-name>em</injection-target-name>
</injection-target>
</persistence-context-ref>
<security-identity>
<use-caller-identity />
</security-identity>
</session>
<session>
<display-name>TasksFacade</display-name>
<ejb-name>TasksFacade</ejb-name>
<business-remote>com.tasks.TasksFacadeRemote</business-remote>
<ejb-class>com.tasks.TasksFacade</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<persistence-context-ref>
<persistence-context-ref-name>com.tasks.TasksFacade/em</persistence-
context-ref-name>
<persistence-unit-name>PUL</persistence-unit-name>
<persistence-context-type>Transaction</persistence-context-type>
<injection-target>
<injection-target-class>com.tasks.TasksFacade</injection-target-
class>
<injection-target-name>em</injection-target-name>
</injection-target>
</persistence-context-ref>
<security-identity>
<use-caller-identity />
</security-identity>
</session>
</enterprise-beans>
</ejb-jar>
In openejb.xml i put
<Resource id="DBM" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@server:1521:db
UserName user
Password user
</Resource>
<Resource id="DBL" type="DataSource">
JdbcDriver oracle.jdbc.OracleDriver
JdbcUrl jdbc:oracle:thin:@server:1521:db
UserName user2
Password user2
</Resource>
Oracle driver i put in lib folder on tomcat.
Аctually, we migrate from Glassfish to Tomcat. On Glassfish
everything works
fine.
I hope that someone can help me out with this.
Thanks in advance.
--
View this message in context:
http://www.nabble.com/OpenEJB%2BTomcat%2BOracle%2BToplink-tp22119600p22119600.html
Sent from the OpenEJB User mailing list archive at Nabble.com.