You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Peter Henderson <pe...@starjar.com> on 2009/05/17 13:19:19 UTC
OpenJPA on Tomcat
I am having some problems getting OpenJPA to work under
tomcat 6.0.18.
I've created a data source in tomcat/conf/context.xml [1]
Referenced the data source in my web.xml [2]
Tested using the data source in a servlet at start up [3]
which should prove my data source has been configured correctly.
Yet when I try to initialize an entity manager factor using
my persistence.xml[4] I get an exception [5]
So what have I missed?
Peter.
[1] tomcat/conf/context.xml
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/mydb"
username="user" password="password" maxActive="20"
maxIdle="10" maxWait="-1"/>
</Context>
[2] web.xml
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Starjar Enterprise</display-name>
<!-- servlet and mappings here -->
<resource-ref>
<description>Starjar Datasouce Connection</description>
<res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
[3] Test code
Context initCtx = null; Context envCtx;
DataSource ds = null;
try {
initCtx = new InitialContext();
envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)
envCtx.lookup("jdbc/StarjarEnterprise5DS");
System.out.println("Got DATA SOURCE VIA " + ds);
log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
// Test out the datasource.
Connection con = ds.getConnection();
//PreparedStatement ps = con.prepareStatement("SELECT
'Hello World'");
PreparedStatement ps = con.prepareStatement("SELECT *
from organization");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String msg = rs.getString(1);
log.info("Ran query got message " + msg);
}
rs.close();
ps.close();
con.close();
} catch (Exception ex) {
log.error("+++++++++++++++++++++Did not get DS", ex);
ex.printStackTrace();
}
[4] My persistence.xml
<?xml version="1.0"?>
<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="StarjarEnterpriseOpenjpaPU">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<!--
<jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
<jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
<!-- snip class entries -->
<properties>
<property name="openjpa.Log" value="DefaultLevel=INFO,
Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
<property name="openjpa.AutoDetach" value="close,
commit"/>
<!--property name="openjpa.DetachState" value="all"/-->
<property name="openjpa.DetachState"
value="loaded(DetachedStateField=false,
DetachedStateManager=false)"/>
<!--property name="openjpa.AutoDetach" value="close"/-->
<!--<property name="openjpa.ConnectionDriverName"
value="org.postgresql.Driver"/> -->
<!--
<property name="openjpa.ConnectionURL"
value="jdbc:hsqldb:tutorial_database"/>
<property name="openjpa.ConnectionDriverName"
value="org.hsqldb.jdbcDriver"/>
<property name="openjpa.ConnectionUserName" value="sa"/>
<property name="openjpa.ConnectionPassword" value=""/>
<property name="openjpa.Log"
value="DefaultLevel=WARN, Tool=INFO"/>
-->
</properties>
[5] The exception
<openjpa-1.2.1-r752877:753278 fatal user error>
org.apache.openjpa.persistence.ArgumentException: A JDBC
Driver or DataSource class name must be specified in the
ConnectionDriverName property.
at
org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
at
org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
at
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
at
org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
at
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
at
com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
at
com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
at
com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at
org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at
org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
17-May-2009 12:02:18
org.apache.catalina.core.StandardContext loadOnStartup
--
Peter Henderson
Director Starjar Limited.
Mobile: +44 (0) 778 233 8645
Email: peter.henderson@starjar.com
Web: www.starjar.com
Re: OpenJPA on Tomcat
Posted by Ognjen Blagojevic <og...@etf.bg.ac.rs>.
Hi Peter,
Did you put Postgres JDBC jar (say, postgresql-8.3-603.jdbc4.jar) in the
tomcat/lib?
Double check that persistance.xml is correctly deployed into tomcat/webapp.
Also, try to change "jdbc/StarjarEnterprise5DS", into
"java:comp/env/jdbc/StarjarEnterprise5DS", end let us know do you get
the same exception.
Regards,
Ognjen
Peter Henderson wrote:
> David,
>
> Thanks for helping, although I don't think this issue is HSQLDB related.
> The persisence.xml file i posted had those items commented out. I've
> attached a cleaned up version [1]
>
> Cheers
>
> Peter.
>
>
> [1] persistence.xml
>
> <?xml version="1.0"?>
> <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="StarjarEnterpriseOpenjpaPU">
>
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>
> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source>
>
>
> <class>com.starjar.starjarenterprise5.domain.AccountCategory</class>
> <exclude-unlisted-classes>true</exclude-unlisted-classes>
>
> <properties>
> <property name="openjpa.Log" value="DefaultLevel=INFO,
> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
>
> <property name="openjpa.AutoDetach" value="close, commit"/>
> <property name="openjpa.DetachState"
> value="loaded(DetachedStateField=false, DetachedStateManager=false)"/>
> </properties>
> </persistence-unit>
> </persistence>
>
>
>
>
> David Beer wrote:
>> On Sun, 17 May 2009 12:19:19 +0100
>> Peter Henderson <pe...@starjar.com> wrote:
>>
>>> I am having some problems getting OpenJPA to work under tomcat 6.0.18.
>>>
>>> I've created a data source in tomcat/conf/context.xml [1]
>>> Referenced the data source in my web.xml [2]
>>> Tested using the data source in a servlet at start up [3] which
>>> should prove my data source has been configured correctly.
>>>
>>> Yet when I try to initialize an entity manager factor using my
>>> persistence.xml[4] I get an exception [5]
>>>
>>>
>>> So what have I missed?
>>>
>>>
>>> Peter.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> [1] tomcat/conf/context.xml
>>>
>>> <Context>
>>>
>>> <!-- Default set of monitored resources -->
>>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>>
>>>
>>>
>>> <Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
>>> type="javax.sql.DataSource"
>>> driverClassName="org.postgresql.Driver"
>>> url="jdbc:postgresql://127.0.0.1:5432/mydb"
>>> username="user" password="password" maxActive="20"
>>> maxIdle="10" maxWait="-1"/>
>>>
>>>
>>> </Context>
>>>
>>>
>>>
>>> [2] web.xml
>>> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
>>>
>>>
>>> <display-name>Starjar Enterprise</display-name>
>>>
>>> <!-- servlet and mappings here -->
>>>
>>> <resource-ref>
>>> <description>Starjar Datasouce Connection</description>
>>> <res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
>>> <res-type>javax.sql.DataSource</res-type>
>>> <res-auth>Container</res-auth>
>>> </resource-ref>
>>>
>>> </web-app>
>>>
>>>
>>>
>>> [3] Test code
>>> Context initCtx = null; Context envCtx;
>>>
>>> DataSource ds = null;
>>> try {
>>> initCtx = new InitialContext();
>>> envCtx = (Context) initCtx.lookup("java:comp/env");
>>> ds = (DataSource) envCtx.lookup("jdbc/StarjarEnterprise5DS");
>>> System.out.println("Got DATA SOURCE VIA " + ds);
>>> log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
>>>
>>> // Test out the datasource.
>>> Connection con = ds.getConnection();
>>> //PreparedStatement ps = con.prepareStatement("SELECT 'Hello
>>> World'");
>>> PreparedStatement ps = con.prepareStatement("SELECT * from
>>> organization");
>>> ResultSet rs = ps.executeQuery();
>>> while (rs.next()) {
>>> String msg = rs.getString(1);
>>> log.info("Ran query got message " + msg);
>>> }
>>> rs.close();
>>> ps.close();
>>> con.close();
>>>
>>>
>>> } catch (Exception ex) {
>>> log.error("+++++++++++++++++++++Did not get DS", ex);
>>> ex.printStackTrace();
>>> }
>>>
>>>
>>>
>>>
>>> [4] My persistence.xml
>>> <?xml version="1.0"?>
>>> <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="StarjarEnterpriseOpenjpaPU">
>>>
>>>
>>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>>>
>>> <!-- <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
>>>
>>> <jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
>>>
>>>
>>> <!-- snip class entries -->
>>> <properties>
>>> <property name="openjpa.Log" value="DefaultLevel=INFO,
>>> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
>>>
>>> <property name="openjpa.AutoDetach" value="close, commit"/>
>>> <!--property name="openjpa.DetachState" value="all"/-->
>>> <property name="openjpa.DetachState"
>>> value="loaded(DetachedStateField=false, DetachedStateManager=false)"/>
>>>
>>> <!--property name="openjpa.AutoDetach" value="close"/-->
>>>
>>> <!--<property name="openjpa.ConnectionDriverName"
>>> value="org.postgresql.Driver"/> -->
>>>
>>>
>>>
>>>
>>> <!--
>>> <property name="openjpa.ConnectionURL"
>>> value="jdbc:hsqldb:tutorial_database"/>
>>> <property name="openjpa.ConnectionDriverName"
>>> value="org.hsqldb.jdbcDriver"/>
>>> <property name="openjpa.ConnectionUserName" value="sa"/>
>>> <property name="openjpa.ConnectionPassword" value=""/>
>>> <property name="openjpa.Log" value="DefaultLevel=WARN,
>>> Tool=INFO"/>
>>> -->
>>> </properties>
>>>
>>>
>>>
>>>
>>>
>>> [5] The exception
>>> <openjpa-1.2.1-r752877:753278 fatal user error>
>>> org.apache.openjpa.persistence.ArgumentException: A JDBC Driver or
>>> DataSource class name must be specified in the ConnectionDriverName
>>> property.
>>> at
>>> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
>>>
>>> at
>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
>>>
>>> at
>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
>>>
>>> at
>>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
>>>
>>> at
>>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>>> at
>>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
>>>
>>> at
>>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
>>>
>>> at
>>> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
>>>
>>> at
>>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
>>>
>>> at
>>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>>>
>>> at
>>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>>>
>>> at
>>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>>>
>>> at
>>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>>>
>>> at
>>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
>>>
>>> at
>>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
>>>
>>> at
>>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
>>>
>>> at
>>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
>>>
>>> at
>>> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
>>> at
>>> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
>>>
>>> at
>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
>>>
>>> at
>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>>>
>>> at
>>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>>> at
>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>>> at
>>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
>>> at
>>> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
>>> at
>>> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>>> at
>>> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
>>> at
>>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>>>
>>> at
>>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>>>
>>> at
>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>>> at
>>> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>>> at
>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>>> at
>>> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>>> at
>>> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>>> at
>>> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>>> 17-May-2009 12:02:18 org.apache.catalina.core.StandardContext
>>> loadOnStartup
>>>
>>>
>>>
>>>
>>>
>>
>> Hi Peter
>>
>> I think your problem may lie in the persistece.xml file the Connection
>> URL[1] either doesn't match properly or OpenJpa can't find the correct
>> jar file with the folder in.
>>
>> [1] http://hsqldb.org/web/hsqlDocsFrame.html
>>
>> David
>>
>
>
Re: OpenJPA on Tomcat
Posted by Håkon Sagehaug <Ha...@bccs.uib.no>.
hi
I have almost the same setup, but I set the properties for the persistent
xml in the code, here is my setup method for database connection using
openjpa, and a jndi data sourec from tomcat
initCtx = new InitialContext();
envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/workflowdb");
HashMap<String, Object> propMap = new HashMap<String,
Object>();
propMap.put("openjpa.ConnectionFactory", ds);
propMap.put("openjpa.ConnectionDriverName",
"javax.sql.DataSource");
propMap.put("openjpa.jdbc.DBDictionary",
"org.apache.openjpa.jdbc.sql.PostgresDictionary");
propMap.put("openjpa.Sequence",
"table(Table=OPENJPA_SEQUENCE_TABLE, Increment=3)");
Then I can get a entitymanager factory like this
entityManagerFactory =
Persistence.createEntityManagerFactory(
"persistentname", propMap);
Hope this can be of help.
cheers, Håkon
2009/5/17 David Beer <da...@googlemail.com>
> Hi Peter
>
> Having looked at the exception you are getting and the your newly
> posted persistence.xml file it seems that you might need to specify
> the connection driver to be used.
>
> I have only used OpenJPA for embeded applications rather than web
> applications. But I would have thought that you would still need to
> supply the driver. I also know that you need supply certain
> libraries for JPA to work with Tomcat.
>
> Sorry can't be much more help.
>
> David
>
> On Sun, 17 May 2009 14:53:41
> +0100 Peter Henderson <pe...@starjar.com> wrote:
>
> > David,
> >
> > Thanks for helping, although I don't think this issue is
> > HSQLDB related. The persisence.xml file i posted had those
> > items commented out. I've attached a cleaned up version [1]
> >
> > Cheers
> >
> > Peter.
> >
> >
> > [1] persistence.xml
> >
> > <?xml version="1.0"?>
> > <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="StarjarEnterpriseOpenjpaPU">
> >
> >
> >
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> >
> > <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source>
> >
> >
> > <class>com.starjar.starjarenterprise5.domain.AccountCategory</class>
> > <exclude-unlisted-classes>true</exclude-unlisted-classes>
> >
> > <properties>
> > <property name="openjpa.Log" value="DefaultLevel=INFO,
> > Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
> >
> > <property name="openjpa.AutoDetach" value="close,
> > commit"/>
> > <property name="openjpa.DetachState"
> > value="loaded(DetachedStateField=false,
> > DetachedStateManager=false)"/>
> > </properties>
> > </persistence-unit>
> > </persistence>
> >
> >
> >
> >
> > David Beer wrote:
> > > On Sun, 17 May 2009 12:19:19 +0100
> > > Peter Henderson <pe...@starjar.com> wrote:
> > >
> > >> I am having some problems getting OpenJPA to work under
> > >> tomcat 6.0.18.
> > >>
> > >> I've created a data source in tomcat/conf/context.xml [1]
> > >> Referenced the data source in my web.xml [2]
> > >> Tested using the data source in a servlet at start up [3]
> > >> which should prove my data source has been configured correctly.
> > >>
> > >> Yet when I try to initialize an entity manager factor using
> > >> my persistence.xml[4] I get an exception [5]
> > >>
> > >>
> > >> So what have I missed?
> > >>
> > >>
> > >> Peter.
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> [1] tomcat/conf/context.xml
> > >>
> > >> <Context>
> > >>
> > >> <!-- Default set of monitored resources -->
> > >> <WatchedResource>WEB-INF/web.xml</WatchedResource>
> > >>
> > >>
> > >>
> > >> <Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
> > >> type="javax.sql.DataSource"
> > >> driverClassName="org.postgresql.Driver"
> > >> url="jdbc:postgresql://127.0.0.1:5432/mydb"
> > >> username="user" password="password"
> > >> maxActive="20" maxIdle="10" maxWait="-1"/>
> > >>
> > >>
> > >> </Context>
> > >>
> > >>
> > >>
> > >> [2] web.xml
> > >> <web-app version="2.5"
> > >> xmlns="http://java.sun.com/xml/ns/javaee"
> > >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > >> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> > >> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
> > >>
> > >>
> > >> <display-name>Starjar Enterprise</display-name>
> > >>
> > >> <!-- servlet and mappings here -->
> > >>
> > >> <resource-ref>
> > >> <description>Starjar Datasouce Connection</description>
> > >> <res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
> > >> <res-type>javax.sql.DataSource</res-type>
> > >> <res-auth>Container</res-auth>
> > >> </resource-ref>
> > >>
> > >> </web-app>
> > >>
> > >>
> > >>
> > >> [3] Test code
> > >> Context initCtx = null; Context envCtx;
> > >>
> > >> DataSource ds = null;
> > >> try {
> > >> initCtx = new InitialContext();
> > >> envCtx = (Context) initCtx.lookup("java:comp/env");
> > >> ds = (DataSource)
> > >> envCtx.lookup("jdbc/StarjarEnterprise5DS");
> > >> System.out.println("Got DATA SOURCE VIA " + ds);
> > >> log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
> > >>
> > >> // Test out the datasource.
> > >> Connection con = ds.getConnection();
> > >> //PreparedStatement ps = con.prepareStatement("SELECT
> > >> 'Hello World'");
> > >> PreparedStatement ps = con.prepareStatement("SELECT *
> > >> from organization");
> > >> ResultSet rs = ps.executeQuery();
> > >> while (rs.next()) {
> > >> String msg = rs.getString(1);
> > >> log.info("Ran query got message " + msg);
> > >> }
> > >> rs.close();
> > >> ps.close();
> > >> con.close();
> > >>
> > >>
> > >> } catch (Exception ex) {
> > >> log.error("+++++++++++++++++++++Did not get DS", ex);
> > >> ex.printStackTrace();
> > >> }
> > >>
> > >>
> > >>
> > >>
> > >> [4] My persistence.xml
> > >> <?xml version="1.0"?>
> > >> <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="StarjarEnterpriseOpenjpaPU">
> > >>
> > >>
> > >>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> > >> <!--
> > >> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
> > >>
> > >>
> <jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
> > >>
> > >> <!-- snip class entries -->
> > >> <properties>
> > >> <property name="openjpa.Log" value="DefaultLevel=INFO,
> > >> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
> > >>
> > >> <property name="openjpa.AutoDetach" value="close,
> > >> commit"/>
> > >> <!--property name="openjpa.DetachState" value="all"/-->
> > >> <property name="openjpa.DetachState"
> > >> value="loaded(DetachedStateField=false,
> > >> DetachedStateManager=false)"/>
> > >>
> > >> <!--property name="openjpa.AutoDetach" value="close"/-->
> > >>
> > >> <!--<property name="openjpa.ConnectionDriverName"
> > >> value="org.postgresql.Driver"/> -->
> > >>
> > >>
> > >>
> > >>
> > >> <!--
> > >> <property name="openjpa.ConnectionURL"
> > >> value="jdbc:hsqldb:tutorial_database"/>
> > >> <property name="openjpa.ConnectionDriverName"
> > >> value="org.hsqldb.jdbcDriver"/>
> > >> <property name="openjpa.ConnectionUserName" value="sa"/>
> > >> <property name="openjpa.ConnectionPassword" value=""/>
> > >> <property name="openjpa.Log"
> > >> value="DefaultLevel=WARN, Tool=INFO"/>
> > >> -->
> > >> </properties>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> [5] The exception
> > >> <openjpa-1.2.1-r752877:753278 fatal user error>
> > >> org.apache.openjpa.persistence.ArgumentException: A JDBC
> > >> Driver or DataSource class name must be specified in the
> > >> ConnectionDriverName property.
> > >> at
> > >>
> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
> > >> at
> > >>
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
> > >> at
> > >>
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
> > >> at
> > >>
> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
> > >> at
> > >>
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
> > >> at
> > >>
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
> > >> at
> > >>
> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
> > >> at
> > >>
> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> > >> at
> > >>
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> > >> at
> > >>
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
> > >> at
> > >>
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
> > >> at
> > >>
> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
> > >> at
> > >>
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
> > >> at
> > >>
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> > >> at
> > >>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> > >> at
> > >>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> > >> at
> > >>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> > >> at
> > >>
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
> > >> at
> > >>
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
> > >> at
> > >>
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
> > >> at
> > >>
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
> > >> at
> > >>
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
> > >> at
> > >>
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
> > >> at
> > >>
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
> > >> at
> > >>
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> > >> at
> > >>
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> > >> at
> > >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> > >> at
> > >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
> > >> at
> > >> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
> > >> at
> > >> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
> > >> at
> > >> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
> > >> at
> > >>
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> > >> at
> > >>
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> > >> at
> > >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
> > >> at
> > >> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> > >> at
> > >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> > >> at
> > >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> > >> at
> > >>
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
> > >> at
> > >> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> > >> at
> > >> org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > >> Method) at
> > >>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > >> at
> > >>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> > >> at java.lang.reflect.Method.invoke(Method.java:597)
> > >> at
> > >> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> > >> at
> > >> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> > >> 17-May-2009 12:02:18
> > >> org.apache.catalina.core.StandardContext loadOnStartup
> > >>
> > >>
> > >>
> > >>
> > >>
> > >
> > > Hi Peter
> > >
> > > I think your problem may lie in the persistece.xml file the
> > > Connection URL[1] either doesn't match properly or OpenJpa can't
> > > find the correct jar file with the folder in.
> > >
> > > [1] http://hsqldb.org/web/hsqlDocsFrame.html
> > >
> > > David
> > >
> >
> >
>
>
--
Håkon Sagehaug, Scientific Programmer
Parallab, Bergen Center for Computational Science (BCCS)
UNIFOB AS (University of Bergen Research Company)
Re: OpenJPA on Tomcat
Posted by David Beer <da...@googlemail.com>.
Hi Peter
Having looked at the exception you are getting and the your newly
posted persistence.xml file it seems that you might need to specify
the connection driver to be used.
I have only used OpenJPA for embeded applications rather than web
applications. But I would have thought that you would still need to
supply the driver. I also know that you need supply certain
libraries for JPA to work with Tomcat.
Sorry can't be much more help.
David
On Sun, 17 May 2009 14:53:41
+0100 Peter Henderson <pe...@starjar.com> wrote:
> David,
>
> Thanks for helping, although I don't think this issue is
> HSQLDB related. The persisence.xml file i posted had those
> items commented out. I've attached a cleaned up version [1]
>
> Cheers
>
> Peter.
>
>
> [1] persistence.xml
>
> <?xml version="1.0"?>
> <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="StarjarEnterpriseOpenjpaPU">
>
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>
> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source>
>
>
> <class>com.starjar.starjarenterprise5.domain.AccountCategory</class>
> <exclude-unlisted-classes>true</exclude-unlisted-classes>
>
> <properties>
> <property name="openjpa.Log" value="DefaultLevel=INFO,
> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
>
> <property name="openjpa.AutoDetach" value="close,
> commit"/>
> <property name="openjpa.DetachState"
> value="loaded(DetachedStateField=false,
> DetachedStateManager=false)"/>
> </properties>
> </persistence-unit>
> </persistence>
>
>
>
>
> David Beer wrote:
> > On Sun, 17 May 2009 12:19:19 +0100
> > Peter Henderson <pe...@starjar.com> wrote:
> >
> >> I am having some problems getting OpenJPA to work under
> >> tomcat 6.0.18.
> >>
> >> I've created a data source in tomcat/conf/context.xml [1]
> >> Referenced the data source in my web.xml [2]
> >> Tested using the data source in a servlet at start up [3]
> >> which should prove my data source has been configured correctly.
> >>
> >> Yet when I try to initialize an entity manager factor using
> >> my persistence.xml[4] I get an exception [5]
> >>
> >>
> >> So what have I missed?
> >>
> >>
> >> Peter.
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> [1] tomcat/conf/context.xml
> >>
> >> <Context>
> >>
> >> <!-- Default set of monitored resources -->
> >> <WatchedResource>WEB-INF/web.xml</WatchedResource>
> >>
> >>
> >>
> >> <Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
> >> type="javax.sql.DataSource"
> >> driverClassName="org.postgresql.Driver"
> >> url="jdbc:postgresql://127.0.0.1:5432/mydb"
> >> username="user" password="password"
> >> maxActive="20" maxIdle="10" maxWait="-1"/>
> >>
> >>
> >> </Context>
> >>
> >>
> >>
> >> [2] web.xml
> >> <web-app version="2.5"
> >> xmlns="http://java.sun.com/xml/ns/javaee"
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> >> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
> >>
> >>
> >> <display-name>Starjar Enterprise</display-name>
> >>
> >> <!-- servlet and mappings here -->
> >>
> >> <resource-ref>
> >> <description>Starjar Datasouce Connection</description>
> >> <res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
> >> <res-type>javax.sql.DataSource</res-type>
> >> <res-auth>Container</res-auth>
> >> </resource-ref>
> >>
> >> </web-app>
> >>
> >>
> >>
> >> [3] Test code
> >> Context initCtx = null; Context envCtx;
> >>
> >> DataSource ds = null;
> >> try {
> >> initCtx = new InitialContext();
> >> envCtx = (Context) initCtx.lookup("java:comp/env");
> >> ds = (DataSource)
> >> envCtx.lookup("jdbc/StarjarEnterprise5DS");
> >> System.out.println("Got DATA SOURCE VIA " + ds);
> >> log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
> >>
> >> // Test out the datasource.
> >> Connection con = ds.getConnection();
> >> //PreparedStatement ps = con.prepareStatement("SELECT
> >> 'Hello World'");
> >> PreparedStatement ps = con.prepareStatement("SELECT *
> >> from organization");
> >> ResultSet rs = ps.executeQuery();
> >> while (rs.next()) {
> >> String msg = rs.getString(1);
> >> log.info("Ran query got message " + msg);
> >> }
> >> rs.close();
> >> ps.close();
> >> con.close();
> >>
> >>
> >> } catch (Exception ex) {
> >> log.error("+++++++++++++++++++++Did not get DS", ex);
> >> ex.printStackTrace();
> >> }
> >>
> >>
> >>
> >>
> >> [4] My persistence.xml
> >> <?xml version="1.0"?>
> >> <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="StarjarEnterpriseOpenjpaPU">
> >>
> >>
> >> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> >> <!--
> >> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
> >>
> >> <jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
> >>
> >> <!-- snip class entries -->
> >> <properties>
> >> <property name="openjpa.Log" value="DefaultLevel=INFO,
> >> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
> >>
> >> <property name="openjpa.AutoDetach" value="close,
> >> commit"/>
> >> <!--property name="openjpa.DetachState" value="all"/-->
> >> <property name="openjpa.DetachState"
> >> value="loaded(DetachedStateField=false,
> >> DetachedStateManager=false)"/>
> >>
> >> <!--property name="openjpa.AutoDetach" value="close"/-->
> >>
> >> <!--<property name="openjpa.ConnectionDriverName"
> >> value="org.postgresql.Driver"/> -->
> >>
> >>
> >>
> >>
> >> <!--
> >> <property name="openjpa.ConnectionURL"
> >> value="jdbc:hsqldb:tutorial_database"/>
> >> <property name="openjpa.ConnectionDriverName"
> >> value="org.hsqldb.jdbcDriver"/>
> >> <property name="openjpa.ConnectionUserName" value="sa"/>
> >> <property name="openjpa.ConnectionPassword" value=""/>
> >> <property name="openjpa.Log"
> >> value="DefaultLevel=WARN, Tool=INFO"/>
> >> -->
> >> </properties>
> >>
> >>
> >>
> >>
> >>
> >> [5] The exception
> >> <openjpa-1.2.1-r752877:753278 fatal user error>
> >> org.apache.openjpa.persistence.ArgumentException: A JDBC
> >> Driver or DataSource class name must be specified in the
> >> ConnectionDriverName property.
> >> at
> >> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
> >> at
> >> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
> >> at
> >> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
> >> at
> >> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
> >> at
> >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
> >> at
> >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
> >> at
> >> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
> >> at
> >> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> >> at
> >> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> >> at
> >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
> >> at
> >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
> >> at
> >> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
> >> at
> >> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
> >> at
> >> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> >> at
> >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> >> at
> >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> >> at
> >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> >> at
> >> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
> >> at
> >> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
> >> at
> >> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
> >> at
> >> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
> >> at
> >> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
> >> at
> >> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
> >> at
> >> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
> >> at
> >> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> >> at
> >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> >> at
> >> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> >> at
> >> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
> >> at
> >> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
> >> at
> >> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
> >> at
> >> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
> >> at
> >> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> >> at
> >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> >> at
> >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
> >> at
> >> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> >> at
> >> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> >> at
> >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> >> at
> >> org.apache.catalina.core.StandardService.start(StandardService.java:516)
> >> at
> >> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> >> at
> >> org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> >> Method) at
> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> >> at
> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> >> at java.lang.reflect.Method.invoke(Method.java:597)
> >> at
> >> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> >> at
> >> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> >> 17-May-2009 12:02:18
> >> org.apache.catalina.core.StandardContext loadOnStartup
> >>
> >>
> >>
> >>
> >>
> >
> > Hi Peter
> >
> > I think your problem may lie in the persistece.xml file the
> > Connection URL[1] either doesn't match properly or OpenJpa can't
> > find the correct jar file with the folder in.
> >
> > [1] http://hsqldb.org/web/hsqlDocsFrame.html
> >
> > David
> >
>
>
Re: OpenJPA on Tomcat
Posted by Peter Henderson <pe...@starjar.com>.
David,
Thanks for helping, although I don't think this issue is
HSQLDB related. The persisence.xml file i posted had those
items commented out. I've attached a cleaned up version [1]
Cheers
Peter.
[1] persistence.xml
<?xml version="1.0"?>
<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="StarjarEnterpriseOpenjpaPU">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source>
<class>com.starjar.starjarenterprise5.domain.AccountCategory</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="openjpa.Log" value="DefaultLevel=INFO,
Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
<property name="openjpa.AutoDetach" value="close,
commit"/>
<property name="openjpa.DetachState"
value="loaded(DetachedStateField=false,
DetachedStateManager=false)"/>
</properties>
</persistence-unit>
</persistence>
David Beer wrote:
> On Sun, 17 May 2009 12:19:19 +0100
> Peter Henderson <pe...@starjar.com> wrote:
>
>> I am having some problems getting OpenJPA to work under
>> tomcat 6.0.18.
>>
>> I've created a data source in tomcat/conf/context.xml [1]
>> Referenced the data source in my web.xml [2]
>> Tested using the data source in a servlet at start up [3]
>> which should prove my data source has been configured correctly.
>>
>> Yet when I try to initialize an entity manager factor using
>> my persistence.xml[4] I get an exception [5]
>>
>>
>> So what have I missed?
>>
>>
>> Peter.
>>
>>
>>
>>
>>
>>
>>
>>
>> [1] tomcat/conf/context.xml
>>
>> <Context>
>>
>> <!-- Default set of monitored resources -->
>> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>
>>
>>
>> <Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
>> type="javax.sql.DataSource"
>> driverClassName="org.postgresql.Driver"
>> url="jdbc:postgresql://127.0.0.1:5432/mydb"
>> username="user" password="password" maxActive="20"
>> maxIdle="10" maxWait="-1"/>
>>
>>
>> </Context>
>>
>>
>>
>> [2] web.xml
>> <web-app version="2.5"
>> xmlns="http://java.sun.com/xml/ns/javaee"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
>>
>>
>> <display-name>Starjar Enterprise</display-name>
>>
>> <!-- servlet and mappings here -->
>>
>> <resource-ref>
>> <description>Starjar Datasouce Connection</description>
>> <res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>>
>> </web-app>
>>
>>
>>
>> [3] Test code
>> Context initCtx = null; Context envCtx;
>>
>> DataSource ds = null;
>> try {
>> initCtx = new InitialContext();
>> envCtx = (Context) initCtx.lookup("java:comp/env");
>> ds = (DataSource)
>> envCtx.lookup("jdbc/StarjarEnterprise5DS");
>> System.out.println("Got DATA SOURCE VIA " + ds);
>> log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
>>
>> // Test out the datasource.
>> Connection con = ds.getConnection();
>> //PreparedStatement ps = con.prepareStatement("SELECT
>> 'Hello World'");
>> PreparedStatement ps = con.prepareStatement("SELECT *
>> from organization");
>> ResultSet rs = ps.executeQuery();
>> while (rs.next()) {
>> String msg = rs.getString(1);
>> log.info("Ran query got message " + msg);
>> }
>> rs.close();
>> ps.close();
>> con.close();
>>
>>
>> } catch (Exception ex) {
>> log.error("+++++++++++++++++++++Did not get DS", ex);
>> ex.printStackTrace();
>> }
>>
>>
>>
>>
>> [4] My persistence.xml
>> <?xml version="1.0"?>
>> <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="StarjarEnterpriseOpenjpaPU">
>>
>>
>> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>> <!--
>> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
>>
>> <jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
>>
>> <!-- snip class entries -->
>> <properties>
>> <property name="openjpa.Log" value="DefaultLevel=INFO,
>> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
>>
>> <property name="openjpa.AutoDetach" value="close,
>> commit"/>
>> <!--property name="openjpa.DetachState" value="all"/-->
>> <property name="openjpa.DetachState"
>> value="loaded(DetachedStateField=false,
>> DetachedStateManager=false)"/>
>>
>> <!--property name="openjpa.AutoDetach" value="close"/-->
>>
>> <!--<property name="openjpa.ConnectionDriverName"
>> value="org.postgresql.Driver"/> -->
>>
>>
>>
>>
>> <!--
>> <property name="openjpa.ConnectionURL"
>> value="jdbc:hsqldb:tutorial_database"/>
>> <property name="openjpa.ConnectionDriverName"
>> value="org.hsqldb.jdbcDriver"/>
>> <property name="openjpa.ConnectionUserName" value="sa"/>
>> <property name="openjpa.ConnectionPassword" value=""/>
>> <property name="openjpa.Log"
>> value="DefaultLevel=WARN, Tool=INFO"/>
>> -->
>> </properties>
>>
>>
>>
>>
>>
>> [5] The exception
>> <openjpa-1.2.1-r752877:753278 fatal user error>
>> org.apache.openjpa.persistence.ArgumentException: A JDBC
>> Driver or DataSource class name must be specified in the
>> ConnectionDriverName property.
>> at
>> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
>> at
>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
>> at
>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
>> at
>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
>> at
>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
>> at
>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
>> at
>> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
>> at
>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
>> at
>> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>> at
>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
>> at
>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
>> at
>> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
>> at
>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
>> at
>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>> at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>> at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>> at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>> at
>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
>> at
>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
>> at
>> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
>> at
>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
>> at
>> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
>> at
>> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
>> at
>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
>> at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>> at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>> at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>> at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
>> at
>> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
>> at
>> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>> at
>> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
>> at
>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>> at
>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>> at
>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>> at
>> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>> at
>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>> at
>> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>> at
>> org.apache.catalina.core.StandardService.start(StandardService.java:516)
>> at
>> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>> at
>> org.apache.catalina.startup.Catalina.start(Catalina.java:578)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at
>> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>> at
>> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>> 17-May-2009 12:02:18
>> org.apache.catalina.core.StandardContext loadOnStartup
>>
>>
>>
>>
>>
>
> Hi Peter
>
> I think your problem may lie in the persistece.xml file the Connection
> URL[1] either doesn't match properly or OpenJpa can't find the correct
> jar file with the folder in.
>
> [1] http://hsqldb.org/web/hsqlDocsFrame.html
>
> David
>
--
Peter Henderson
Director Starjar Limited.
Mobile: +44 (0) 778 233 8645
Email: peter.henderson@starjar.com
Web: www.starjar.com
Re: OpenJPA on Tomcat
Posted by David Beer <da...@googlemail.com>.
On Sun, 17 May 2009 12:19:19 +0100
Peter Henderson <pe...@starjar.com> wrote:
>
> I am having some problems getting OpenJPA to work under
> tomcat 6.0.18.
>
> I've created a data source in tomcat/conf/context.xml [1]
> Referenced the data source in my web.xml [2]
> Tested using the data source in a servlet at start up [3]
> which should prove my data source has been configured correctly.
>
> Yet when I try to initialize an entity manager factor using
> my persistence.xml[4] I get an exception [5]
>
>
> So what have I missed?
>
>
> Peter.
>
>
>
>
>
>
>
>
> [1] tomcat/conf/context.xml
>
> <Context>
>
> <!-- Default set of monitored resources -->
> <WatchedResource>WEB-INF/web.xml</WatchedResource>
>
>
>
> <Resource name="jdbc/StarjarEnterprise5DS" auth="Container"
> type="javax.sql.DataSource"
> driverClassName="org.postgresql.Driver"
> url="jdbc:postgresql://127.0.0.1:5432/mydb"
> username="user" password="password" maxActive="20"
> maxIdle="10" maxWait="-1"/>
>
>
> </Context>
>
>
>
> [2] web.xml
> <web-app version="2.5"
> xmlns="http://java.sun.com/xml/ns/javaee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
>
>
> <display-name>Starjar Enterprise</display-name>
>
> <!-- servlet and mappings here -->
>
> <resource-ref>
> <description>Starjar Datasouce Connection</description>
> <res-ref-name>jdbc/StarjarEnterprise5DS</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
>
> </web-app>
>
>
>
> [3] Test code
> Context initCtx = null; Context envCtx;
>
> DataSource ds = null;
> try {
> initCtx = new InitialContext();
> envCtx = (Context) initCtx.lookup("java:comp/env");
> ds = (DataSource)
> envCtx.lookup("jdbc/StarjarEnterprise5DS");
> System.out.println("Got DATA SOURCE VIA " + ds);
> log.error("++++++++++++Got DATA SOURCE VIA JNDI " + ds);
>
> // Test out the datasource.
> Connection con = ds.getConnection();
> //PreparedStatement ps = con.prepareStatement("SELECT
> 'Hello World'");
> PreparedStatement ps = con.prepareStatement("SELECT *
> from organization");
> ResultSet rs = ps.executeQuery();
> while (rs.next()) {
> String msg = rs.getString(1);
> log.info("Ran query got message " + msg);
> }
> rs.close();
> ps.close();
> con.close();
>
>
> } catch (Exception ex) {
> log.error("+++++++++++++++++++++Did not get DS", ex);
> ex.printStackTrace();
> }
>
>
>
>
> [4] My persistence.xml
> <?xml version="1.0"?>
> <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="StarjarEnterpriseOpenjpaPU">
>
>
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
> <!--
> <jta-data-source>jdbc/StarjarEnterprise5DS</jta-data-source> -->
>
> <jta-data-source>java:comp/env/jdbc/StarjarEnterprise5DS</jta-data-source>
>
> <!-- snip class entries -->
> <properties>
> <property name="openjpa.Log" value="DefaultLevel=INFO,
> Runtime=ERROR, Tool=ERROR, SQL=ERROR, DataCache=ERROR"/>
>
> <property name="openjpa.AutoDetach" value="close,
> commit"/>
> <!--property name="openjpa.DetachState" value="all"/-->
> <property name="openjpa.DetachState"
> value="loaded(DetachedStateField=false,
> DetachedStateManager=false)"/>
>
> <!--property name="openjpa.AutoDetach" value="close"/-->
>
> <!--<property name="openjpa.ConnectionDriverName"
> value="org.postgresql.Driver"/> -->
>
>
>
>
> <!--
> <property name="openjpa.ConnectionURL"
> value="jdbc:hsqldb:tutorial_database"/>
> <property name="openjpa.ConnectionDriverName"
> value="org.hsqldb.jdbcDriver"/>
> <property name="openjpa.ConnectionUserName" value="sa"/>
> <property name="openjpa.ConnectionPassword" value=""/>
> <property name="openjpa.Log"
> value="DefaultLevel=WARN, Tool=INFO"/>
> -->
> </properties>
>
>
>
>
>
> [5] The exception
> <openjpa-1.2.1-r752877:753278 fatal user error>
> org.apache.openjpa.persistence.ArgumentException: A JDBC
> Driver or DataSource class name must be specified in the
> ConnectionDriverName property.
> at
> org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:74)
> at
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:784)
> at
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:561)
> at
> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265)
> at
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505)
> at
> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430)
> at
> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103)
> at
> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> at
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> at
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863)
> at
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
> at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> at
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.getEntityManager(EntityManagerServlet.java:119)
> at
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.initializeEntityManger(EntityManagerServlet.java:102)
> at
> com.starjar.starjarenterprise5.remote_impl.EntityManagerServlet.init(EntityManagerServlet.java:141)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
> at
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
> at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
> at
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
> at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
> at
> org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at
> org.apache.catalina.core.StandardService.start(StandardService.java:516)
> at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at
> org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> 17-May-2009 12:02:18
> org.apache.catalina.core.StandardContext loadOnStartup
>
>
>
>
>
Hi Peter
I think your problem may lie in the persistece.xml file the Connection
URL[1] either doesn't match properly or OpenJpa can't find the correct
jar file with the folder in.
[1] http://hsqldb.org/web/hsqlDocsFrame.html
David