hello,
i searched the web for the solution but i did not find :(
my setup:
i want to get my application running on Geronimo 2.0 with openejb as
entity manager and postgresql as underlying database.
things i already did:
i did create a new database pool called "DefaultDS" through the
admin-console
then for my application i modified the persistence.xml file according to
mails i found in the web:
<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/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="valhalla" transaction-type="JTA">
<description>videothek</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<!-- <jta-data-source>DefaultDS</jta-data-source>
<non-jta-data-source>NoTxDatasource</non-jta-data-source> -->
<jar-file>videothek.jar</jar-file>
<!--class>vt.bean.entity.Person</class>
<class>vt.bean.entity.Actor</class>
<class>vt.bean.entity.Director</class>
<class>vt.bean.entity.Movie</class>
<class>vt.bean.entity.Dvd</class> -->
<exclude-unlisted-classes />
<properties>
<property name="openjpa.jdbc.DBDictionary" value="postgres"/>
<property name="openjpa.ConnectionDriverName"
value="org.postgresql.Driver" />
<property name="openjpa.ConnectionUserName" value="postgres" />
<property name="openjpa.ConnectionPassword" value="postgres" />
<property name="openjpa.jdbc.ConnectionURL"
value="jdbc:postgresql://localhost:5432/video" />
<property name="openjpa.jdbc.SynchronizeMappings" value="false"/>
</properties>
</persistence-unit>
</persistence>
my geronimo-web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1">
<sys:environment>
<sys:moduleId>
<sys:artifactId>videothek</sys:artifactId>
<sys:type>war</sys:type>
</sys:moduleId>
<sys:dependencies>
<sys:dependency>
<sys:groupId>console.dbpool</sys:groupId>
<sys:artifactId>DefaultDS</sys:artifactId>
</sys:dependency>
</sys:dependencies>
</sys:environment>
<context-root>/valhalla</context-root>
<!-- security settings, if any, go here -->
<resource-ref>
<ref-name>jdbc/valhalla</ref-name>
<resource-link>DefaultDS</resource-link>
</resource-ref>
</web-app>
then it is possible to deploy the application to the geronimo server.
the problem is as soon as i want to create an entity manager in my
application:
/*code snippet*/
@PersistenceUnit(unitName="valhalla")
private EntityManagerFactory emf;
private EntityManager em;
em = emf.createEntityManager();
/*code snippet*/
i get the following error:
[exec] Caused by: java.lang.Exception: java.lang.RuntimeException:
There were errors initializing your configuration:
<1.0.0-r561970-r561970 fatal store error>
org.apache.openjpa.util.StoreException: org.postgresql.Driver in
classloader org.apache.geronimo.configs/openjpa/2.0.1/car
root cause:
javax.ejb.NoSuchEJBException: reference is invalid
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:208)
org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
$Proxy68.getNewData(Unknown Source)
org.apache.jsp.addTool_jsp._jspService(addTool_jsp.java:165)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
please help me, i am stuck for days now with this problem and i dont
find nothing new anymore on the net. i tried mayn different kinds of
deployment descriptors. this error is the farthest i get.
thank you very much for your help,
greetings,
mario