Hi all, I have installed XWiki 2.2.3 in a Tomcat 6.0.20 servlet container using Oracle 10g as database. The database connection settings are done on the default way in the WEB-INF/hibernate.cfg.xml file. XWIKI is running without any problems or exceptions.
Now I want to "replace" the database settings in hibernate.cfg.xml by using a Tomcat container managed JNDI data source. The advantage for us is the usage of Tomcat's server.xml as a central place where we can manage all data sources of every webbapp within Tomcat. I have red the articles under http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Installation#HInstallandconfigureaRelationalDatabase and http://java.dzone.com/articles/xwiki-installation-jboss-using (it's a JBoss relatet documentation but many information pieces are usefull for Tomcat too). My JNDI configuration is as following: a) definition of the JNDI datasource in Tomcat's server.xml (defining the Oracle JNDI resource can't be the problem because we use other Oracle JNDI data sources without any problems) <Resource name="jdbc/XWikiDS" auth="Container" type="javax.sql.DataSource" username="XWIKI" password="*************" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@myoraserver:1521:MYORAINSTANCE" connectionProperties="useUnicode=true;characterEncoding=utf8;" maxActive="10" maxIdle="2" maxWait="5000" testOnBorrow="true" validationQuery="SELECT 1 FROM DUAL" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> b) settings in xwiki/WEB-INF/hibernate.cfg.xml <property name="connection.datasource">java:/comp/env/jdbc/XWikiDS</property> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="statement_cache.size">2</property> <property name="hibernate.connection.SetBigStringTryClob">true</property> <property name="hibernate.jdbc.batch_size">0</property> <mapping resource="xwiki.oracle.hbm.xml"/> <mapping resource="feeds.oracle.hbm.xml"/> <mapping resource="activitystream.hbm.xml"/> c) settings in xwiki/WEB-INF/web.xml <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/XWikiDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> (using <ResourceLink name="jdbc/XWikiDS" global="jdbc/XWikiDS" type="javax.sql.DataSource" /> instead wan't help) ******************************************** Using this JNDI configuration causes the following errors: 2010-04-28 12:55:25,071 ERROR [org.hibernate.util.JDBCExceptionReporter] Cannot create JDBC driver of class '' for connect URL 'null' 2010-04-28 12:55:25,072 ERROR [com.xpn.xwiki.store.XWikiHibernateBaseStore] Failed creating schema update script org.hibernate.exception.GenericJDBCException: Cannot open connection at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426) at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119) at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57) at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326) at com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:749) at com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:674) at com.xpn.xwiki.store.XWikiHibernateBaseStore.getSchemaUpdateScript(XWikiHibernateBaseStore.java:419) at com.xpn.xwiki.store.XWikiHibernateBaseStore.updateSchema(XWikiHibernateBaseStore.java:287) at com.xpn.xwiki.store.XWikiHibernateBaseStore.updateSchema(XWikiHibernateBaseStore.java:257) at com.xpn.xwiki.store.XWikiHibernateBaseStore.checkHibernate(XWikiHibernateBaseStore.java:566) at com.xpn.xwiki.store.XWikiHibernateBaseStore.execute(XWikiHibernateBaseStore.java:1057) at com.xpn.xwiki.store.XWikiHibernateBaseStore.executeRead(XWikiHibernateBaseStore.java:1101) at com.xpn.xwiki.store.migration.hibernate.XWikiHibernateMigrationManager.getDBVersion(XWikiHibernateMigrationManager.java:68) at com.xpn.xwiki.store.migration.AbstractXWikiMigrationManager.<init>(AbstractXWikiMigrationManager.java:68) at com.xpn.xwiki.store.migration.hibernate.XWikiHibernateMigrationManager.<init>(XWikiHibernateMigrationManager.java:51) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.xpn.xwiki.XWiki.createClassFromConfig(XWiki.java:1070) at com.xpn.xwiki.XWiki.initXWiki(XWiki.java:772) at com.xpn.xwiki.XWiki.<init>(XWiki.java:717) at com.xpn.xwiki.XWiki.getMainXWiki(XWiki.java:354) at com.xpn.xwiki.XWiki.getXWiki(XWiki.java:435) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:135) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xpn.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:118) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xpn.xwiki.web.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:295) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880) at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423) ... 59 more Caused by: java.lang.NullPointerException at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507) at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476) at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307) at java.sql.DriverManager.getDriver(DriverManager.java:253) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143) ******************************************************* Very probably XWIKI can not resolve the connection settings defined as JNDI data source in Tomcat's server.xml. But where is my mistake or my misunderstanding regarding the XWIKI JNDI settings? Kind regards Thomas _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
