A follow-up question. After I got it to work with the openjpa, I commented out database.jndi.name then Roller refused to start.
I am just curious why Roller still requires a JDNI data source now that the JPA connection is set. Is it because the connection check is hard coded in the startup code? Regards, Daniel On Wed, Jan 11, 2012 at 10:53 PM, Daniel Ruan <[email protected]> wrote: > Hi Folks, > > I had Roller 4.0.1 with Tomcat 6 and Oracle 10g XE as the backend. I > followed the upgrade steps in the install guide, and when I first started > Tomcat, I got the following error in .log file: > > ... ... > INFO 2012-01-11 22:06:25,820 WebloggerImpl:initialize - Initializing > Roller Weblogger business tier > FATAL 2012-01-11 22:06:26,120 JPAPropertiesManagerImpl:initialize - > Failed to initialize runtime configuration properties.Please check that the > database has been upgraded! > <openjpa-2.0.1-r422266:989424 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:76) > at > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:839) > at > org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:597) > at > org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489) > at > org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507) > at > org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432) > at > org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104) > 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:939) > at > org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:639) > at > org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:206) > at > org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154) > at > org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60) > at > org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy.getThreadLocalEntityManager(JPAPersistenceStrategy.java:238) > at > org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy.getEntityManager(JPAPersistenceStrategy.java:225) > at > org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy.getNamedQuery(JPAPersistenceStrategy.java:258) > at > org.apache.roller.weblogger.business.jpa.JPAPropertiesManagerImpl.getProperties(JPAPropertiesManagerImpl.java:117) > at > org.apache.roller.weblogger.business.jpa.JPAPropertiesManagerImpl.initialize(JPAPropertiesManagerImpl.java:77) > at > org.apache.roller.weblogger.business.WebloggerImpl.initialize(WebloggerImpl.java:338) > at > org.apache.roller.weblogger.ui.core.RollerContext.contextInitialized(RollerContext.java:161) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4429) > 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:526) > at > org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630) > at > org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556) > at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491) > at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206) > at > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) > at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) > 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:583) > 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) > INFO 2012-01-11 22:26:27,281 DatabaseProvider:successMessage - SUCCESS: > Got parameters. Using configuration type JNDI_NAME > INFO 2012-01-11 22:26:27,287 DatabaseProvider:successMessage - -- Using > JNDI datasource name: java:comp/env/jdbc/rollerdb > INFO 2012-01-11 22:26:27,290 DatabaseProvider:successMessage - SUCCESS: > located JNDI DataSource [java:comp/env/jdbc/rollerdb] > ... ... > > After reading OpenJPA's online documentation, I went to add the following > in roller-customer.properties: > > openjpa.ConnectionDriverName=oracle.jdbc.OracleDriver > openjpa.ConnectionURL=jdbc:oracle:thin:@localhost:1521:XE > openjpa.ConnectionUserName=rollerusername > openjpa.ConnectionPassword=**** > > On my next try, the error went away. > > I am just curious because adding those openjpa properties is not > documented anywhere in Roller. Did I miss anything? > > Thanks, > Daniel > > >
