4 Replies Latest reply on Jan 10, 2008 3:19 PM by ajohnson1200

    Migration Issues - java.lang.ClassNotFoundException

       

      I am currently Evaluating Clearspace for our company, and while we were set back a bit by being busy, I'm still try to push forward and get a working instance up on a higher-class machine than running on my Development Desktop...  This Collaboration software is by far the best to use from a user standpoint...

       

       

       

       

       

      I'm trying to migrate what is a 1.7.0 Integrated DB, Standalone web-server (sh start-clearspace.sh) to running 1.10.0 within an Application server: Glassfish v2.0 ( Sun Java System Application Server 9.1_01 (build b09d-fcs)), using a JNDI Connection to a JavaDB, also on the same server (for now).

       

       

       

       

       

      So far, I have gotten to:   Copying the "jiveHome" to the application server at "/opt/jiveSoftware/jiveHome", deploying the 1.10.0 WAR, and then point it at the "jiveHome".     This basically migrated the entire 1.7.0 application to 1.10.0, and now it runs on the application server, against the HSQLDB located within the jiveHome.

       

       

      I go into the admin console,  and go to the "Database Migration", and get my JNDI information put in

       

       

       

       

       

      I get the "ClassNotFoundException".

       

       

       

       

       

      Diving into the application server logs, i get:

       

       

      [#|2008-01-09T10:27:52.077-0600|FINE|sun-appserver9.1|com.jivesoftware.Jive-DEBUG|_ThreadID=31;_ThreadName=httpSSLWorkerThread-8080-1;ClassName=com.jivesoftware.base.Log;MethodName=debug;_RequestID=953578e5-0f3e-4463-a213-f5860e31434b;|Unable to retrieve database connection

      java.lang.RuntimeException: java.lang.ClassNotFoundException:

              at com.jivesoftware.base.database.dao.SpringJdbcDAOContext$JDBCDataSource.<init>(SpringJdbcDAOContext.java:351)

              at com.jivesoftware.base.database.dao.SpringJdbcDAOContext.<init>(SpringJdbcDAOContext.java:45)

              at com.jivesoftware.community.importer.RemoteJiveInstanceUtils.checkSchemaCreation(RemoteJiveInstanceUtils.java:392)

              at com.jivesoftware.community.importer.RemoteJiveInstanceUtils.testConnection(RemoteJiveInstanceUtils.java:545)

              at com.jivesoftware.community.action.admin.AdminDatabaseUtilAction.testConnection(AdminDatabaseUtilAction.java:32)

              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.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)

              at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)

              at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)

              at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)

              at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)

              at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)

              at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)

              at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:189)

              at com.jivesoftware.community.web.webwork.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:53)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at com.jivesoftware.community.web.JiveActionContextCleanUp.doFilter(JiveActionContextCleanUp.java:46)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at org.directwebremoting.servlet.DwrWebContextFilter.doFilter(DwrWebContextFilter.java:91)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at com.jivesoftware.base.plugin.PluginFilter.doFilter(PluginFilter.java:77)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at com.jivesoftware.base.database.dao.DAOContextCleanUpFilter.doFilter(DAOContextCleanUpFilter.java:32)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)

              at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

              at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

              at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

              at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

              at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

              at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

              at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

              at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

              at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

              at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

              at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

              at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

              at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

              at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

              at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

      Caused by: java.lang.ClassNotFoundException:

              at java.lang.Class.forName0(Native Method)

              at java.lang.Class.forName(Class.java:169)

              at com.jivesoftware.base.database.dao.SpringJdbcDAOContext$JDBCDataSource.<init>(SpringJdbcDAOContext.java:348)

              ... 64 more

      |#]

       

       

       

       

       

      I am unable to determine where to go from here.

       

       

        • Re: Migration Issues - java.lang.ClassNotFoundException

           

          In another attempt,

           

           

          I have Installed a "new" clearspace application to the application server, version 1.10.0.

           

           

          I was able to configure it against our LDAP for users & groups, using the JNDI Connection Pool to the JavaDB that is setup within the application server.

           

           

           

           

           

          I then attempted to run the "Jive Integrated Server Importer", pointing it at the jiveHome of the 1.7.0 instance, and now, also the new 1.10.0 instance.

           

           

          Both attempts failed when importing the data...

           

           

           

           

           

          The errors I have run into when trying to import from either version,  are as follows:

           

           

          [#|2008-01-09T10:16:54.656-0600|SEVERE|sun-appserver9.1|com.jivesoftware.Jive-ERR|_ThreadID=26;_ThreadName=Task Engine Worker 1;_RequestID=3dbd6bfe-825a-4819-a19f-0fe28f833e4c;|Column not found: FORUMID in statement

          java.sql.SQLException: Column not found: FORUMID in statement

                  at org.hsqldb.jdbc.Util.throwError(Unknown Source)

                  at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)

                  at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.getGateways(JDBCIntegratedImportSource.java:2563)

                  at com.jivesoftware.community.importer.BaseImporter.run(BaseImporter.java:340)

                  at com.jivesoftware.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:392)

          #]

           

           

          [#

          2008-01-09T10:18:56.846-0600

          SEVERE

          sun-appserver9.1

          com.jivesoftware.Jive-ERR

          ThreadID=18;ThreadName=Task Engine Worker 2;_RequestID=a80f50c2-f9a7-4d97-ba58-3d81c9158ca2;

          Table not found in statement

          java.sql.SQLException: Table not found in statement

                  at org.hsqldb.jdbc.Util.throwError(Unknown Source)

                  at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)

                  at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.getCategoryTree(JDBCIntegratedImportSource.java:3140)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.getJiveCategoryTree(JDBCIntegratedImportSource.java:3123)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.init(JDBCIntegratedImportSource.java:65)

                  at com.jivesoftware.community.importer.BaseImporter.run(BaseImporter.java:93)

                  at com.jivesoftware.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:392)

           

          #]

           

          [#

          2008-01-09T10:18:56.846-0600

          SEVERE

          sun-appserver9.1

          com.jivesoftware.Jive-ERR

          ThreadID=18;ThreadName=Task Engine Worker 2;_RequestID=a80f50c2-f9a7-4d97-ba58-3d81c9158ca2;

          Table not found in statement

          java.sql.SQLException: Table not found in statement

                  at org.hsqldb.jdbc.Util.throwError(Unknown Source)

                  at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)

                  at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.getCategoryTree(JDBCIntegratedImportSource.java:3140)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.getKbCategoryTree(JDBCIntegratedImportSource.java:3127)

                  at com.jivesoftware.community.importer.JDBCIntegratedImportSource.init(JDBCIntegratedImportSource.java:66)

                  at com.jivesoftware.community.importer.BaseImporter.run(BaseImporter.java:93)

                  at com.jivesoftware.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:392)

           

          #]

           

           

           

           

           

          It also complains about the Group setup on import... Even though the "fresh" install uses all of the exact same LDAP connection strings and settings, it says the 'Users' setup is inconsisnt, but both are detected as LDAP.   The "Fresh" install notifies me that the "integrated" server is setup as "LDAP Groups", but the fresh install is setup with a "Custom Group Manager".   That is incorrect... the fresh install IS using LDAP for groups.

           

           

           

           

           

           

           

           

          Any help would be great, as it would allow me to continue to pitch this software to the higher-ups in an attempt to woo them to a good Collaboration tool

           

           

           

           

           

          Thanks!

           

           

          • Re: Migration Issues - java.lang.ClassNotFoundException

             

            I Dialed Straight into the Database, without using JNDI.

             

             

             

             

             

            "Database Migration" used the Derby Network Client driver with appropriate URL, and it was able to migrate.

             

             

             

             

             

            I DID get a "Derby Exception":

             

             

            [#|2008-01-09T11:19:11.397-0600|SEVERE|sun-appserver9.1|com.jivesoftware.Jive-ERR|_ThreadID=39;_ThreadName=database-migration-taskBackgroundThread;_RequestID=eb1fbdbc-fd83-4cf2-a543-37b4721a810e;|error saving rows[jiveProperty]:

            org.apache.derby.client.am.BatchUpdateException: Non-atomic batch failure.  The batch was submitted, but at least one exception occurred on an individual member of the batch. Use getNextException() to retrieve the exceptions for specific batched elements.

                    at org.apache.derby.client.am.Agent.endBatchedReadChain(Unknown Source)

                    at org.apache.derby.client.am.PreparedStatement.executeBatchRequestX(Unknown Source)

                    at org.apache.derby.client.am.PreparedStatement.executeBatchX(Unknown Source)

                    at org.apache.derby.client.am.PreparedStatement.executeBatch(Unknown Source)

                    at com.jivesoftware.community.migration.MigrateTable.performStep(MigrateTable.java:308)

                    at com.jivesoftware.community.migration.DatabaseMigrationRoutine.start(DatabaseMigrationRoutine.java:54)

                    at com.jivesoftware.community.action.admin.DatabaseMigrationTaskAction.execute(DatabaseMigrationTaskAction.java:48)

                    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 com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)

                    at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)

                    at com.opensymphony.webwork.interceptor.BackgroundProcess$1.run(BackgroundProcess.java:28)

                    at java.lang.Thread.run(Thread.java:619)

            |#]

             

             

             

             

             

            I will now go and try to "rerun setup" and see if It will allow me to use JNDI with no other changes.

             

             

            • Re: Migration Issues - java.lang.ClassNotFoundException

               

              I was able to get it running with the JNDI.

               

               

               

               

               

              I copied the "fresh install" jive_startup.xml file over the "current, upgraded" jive_startup.xml, and Clearspaces started right up.

               

               

               

               

               

              its now Running 1.10.0, in evaluation lic mode, on a glassfish application server, pointing at a JNDI managed connection pool to a Java DB (Derby) Database.

               

               

               

               

               

              Hopefully the faster performance and better reliability of a dedicated app server helps convince some more people that we want to use the product

               

               

              • Re: Migration Issues - java.lang.ClassNotFoundException

                hi lafrad,

                 

                It sounds like you're trying to migrate to JavaDB / Derby, but we don't actually support Derby. You can find a list of databases that we support here:

                 

                http://www.jivesoftware.com/builds/docs/clearspace/latest/ClearspaceInstallGuide.html#ClearspaceInstallGuide-SystemRequirements

                 

                If that's not the case, let us know and we'll try to get you through the database migration.

                 

                Cheers,

                 

                AJ