Trying to setup SI4T on SDL Tridion 2013 for the first time, I've used the BitNami Apache Solr installer to get Solr 4.4.0 on my system and setup a core for my staging website on that.
Next I followed the SI4T Quickstart guide to add the TBBs and configure the Deployer (copied all the jars and added the config bits). That seems to all be correct, but when publishing a Page, Deployment fails and the following error shows up in the cd_core.log
:
2013-10-02 13:15:30,404 ERROR StorageManagerFactory - Fatal error, unable to load the StorageManagerFactory
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlserverEntityManagerFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) ~[spring-context.jar:3.1.0.RELEASE]
at com.tridion.storage.persistence.JPADAOFactory.configureBundle(JPADAOFactory.java:66) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configureStorage(StorageFactoryConfigurationLoader.java:91) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configureStorage(StorageFactoryConfigurationLoader.java:65) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configure(StorageFactoryConfigurationLoader.java:51) ~[cd_datalayer.jar:na]
at com.tridion.configuration.step.ConfigurationStepLoader.configure(ConfigurationStepLoader.java:47) ~[cd_core.jar:na]
at com.tridion.storage.StorageManagerFactory.configure(StorageManagerFactory.java:137) [cd_datalayer.jar:na]
at com.tridion.services.BaseService.<init>(BaseService.java:107) ~[cd_core.jar:na]
at com.tridion.storage.StorageManagerFactory.<init>(StorageManagerFactory.java:104) [cd_datalayer.jar:na]
at com.tridion.storage.StorageManagerFactory.reloadInstance(StorageManagerFactory.java:84) [cd_datalayer.jar:na]
at com.tridion.storage.StorageManagerFactory.<clinit>(StorageManagerFactory.java:56) [cd_datalayer.jar:na]
at com.tridion.storage.deploy.PageHandler.deploy(PageHandler.java:58) [cd_datalayer.jar:na]
at com.tridion.deployer.DeploymentHandler.deploy(DeploymentHandler.java:90) [cd_datalayer.jar:na]
at com.tridion.deployer.modules.PageDeploy.processPage(PageDeploy.java:145) [cd_deployer.jar:na]
at com.tridion.deployer.modules.PageDeploy.processItem(PageDeploy.java:118) [cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.processSection(SectionVisitor.java:83) [cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.processSection(SectionVisitor.java:87) [cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.process(SectionVisitor.java:60) [cd_deployer.jar:na]
at com.tridion.deployer.Processor.process(Processor.java:109) [cd_deployer.jar:na]
at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:77) [cd_deployer.jar:na]
at com.tridion.deployer.phases.ProcessingPhase.execute(ProcessingPhase.java:72) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na]
at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na]
at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:175) [cd_deployer.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
Caused by: java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.6.0_26]
at java.lang.ClassLoader.defineClassCond(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader.access$000(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_26]
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at org.hibernate.cfg.Configuration.reset(Configuration.java:322) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.cfg.Configuration.<init>(Configuration.java:261) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.cfg.Configuration.<init>(Configuration.java:265) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:150) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:71) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:257) ~[spring-orm.jar:3.1.0.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) ~[spring-orm.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ~[spring-beans.jar:3.1.0.RELEASE]
... 38 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.hibernate.util.DTDEntityResolver
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_26]
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
... 59 common frames omitted
2013-10-02 13:15:30,410 ERROR DeployPipelineExecutor - Final attempt in Phase: Deployment Processing Phase failed for transaction: tcm:0-399-66560
2013-10-02 13:15:30,412 ERROR DeployPipelineExecutor - Original stacktrace for transaction: tcm:0-399-66560
java.lang.ExceptionInInitializerError: null
at com.tridion.storage.deploy.PageHandler.deploy(PageHandler.java:58) ~[cd_datalayer.jar:na]
at com.tridion.deployer.DeploymentHandler.deploy(DeploymentHandler.java:90) ~[cd_datalayer.jar:na]
at com.tridion.deployer.modules.PageDeploy.processPage(PageDeploy.java:145) ~[cd_deployer.jar:na]
at com.tridion.deployer.modules.PageDeploy.processItem(PageDeploy.java:118) ~[cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.processSection(SectionVisitor.java:83) ~[cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.processSection(SectionVisitor.java:87) ~[cd_deployer.jar:na]
at com.tridion.deployer.SectionVisitor.process(SectionVisitor.java:60) ~[cd_deployer.jar:na]
at com.tridion.deployer.Processor.process(Processor.java:109) ~[cd_deployer.jar:na]
at com.tridion.deployer.workers.ProcessorWorker.doWork(ProcessorWorker.java:77) ~[cd_deployer.jar:na]
at com.tridion.deployer.phases.ProcessingPhase.execute(ProcessingPhase.java:72) ~[cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:186) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na]
at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na]
at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:175) [cd_deployer.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
Caused by: java.lang.RuntimeException: Fatal error, unable to load the StorageManagerFactory
at com.tridion.storage.StorageManagerFactory.reloadInstance(StorageManagerFactory.java:91) ~[cd_datalayer.jar:na]
at com.tridion.storage.StorageManagerFactory.<clinit>(StorageManagerFactory.java:56) ~[cd_datalayer.jar:na]
... 21 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlserverEntityManagerFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) ~[spring-context.jar:3.1.0.RELEASE]
at com.tridion.storage.persistence.JPADAOFactory.configureBundle(JPADAOFactory.java:66) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configureStorage(StorageFactoryConfigurationLoader.java:91) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configureStorage(StorageFactoryConfigurationLoader.java:65) ~[cd_datalayer.jar:na]
at com.tridion.storage.configuration.StorageFactoryConfigurationLoader.configure(StorageFactoryConfigurationLoader.java:51) ~[cd_datalayer.jar:na]
at com.tridion.configuration.step.ConfigurationStepLoader.configure(ConfigurationStepLoader.java:47) ~[cd_core.jar:na]
at com.tridion.storage.StorageManagerFactory.configure(StorageManagerFactory.java:137) ~[cd_datalayer.jar:na]
at com.tridion.services.BaseService.<init>(BaseService.java:107) ~[cd_core.jar:na]
at com.tridion.storage.StorageManagerFactory.<init>(StorageManagerFactory.java:104) ~[cd_datalayer.jar:na]
at com.tridion.storage.StorageManagerFactory.reloadInstance(StorageManagerFactory.java:84) ~[cd_datalayer.jar:na]
... 22 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/hibernate/util/DTDEntityResolver
at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.6.0_26]
at java.lang.ClassLoader.defineClassCond(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader.access$000(Unknown Source) ~[na:1.6.0_26]
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_26]
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at org.hibernate.cfg.Configuration.reset(Configuration.java:322) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.cfg.Configuration.<init>(Configuration.java:261) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.cfg.Configuration.<init>(Configuration.java:265) ~[hibernate-core.jar:4.0.1.Final]
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:150) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:71) ~[hibernate-entitymanager.jar:4.0.1.Final]
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:257) ~[spring-orm.jar:3.1.0.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310) ~[spring-orm.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514) ~[spring-beans.jar:3.1.0.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452) ~[spring-beans.jar:3.1.0.RELEASE]
... 38 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.hibernate.util.DTDEntityResolver
at java.net.URLClassLoader$1.run(Unknown Source) ~[na:1.6.0_26]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_26]
at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.6.0_26]
... 59 common frames omitted
2013-10-02 13:15:30,414 ERROR DeployPipelineExecutor - Unable to start processing deployment package with transactionId: tcm:0-399-66560
com.tridion.deployer.ProcessingException: Phase: Deployment Processing Phase failed, null, null
at com.tridion.deployer.phases.DeployPipelineExecutor.runMainExecutePhase(DeployPipelineExecutor.java:197) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.doExecute(DeployPipelineExecutor.java:97) [cd_deployer.jar:na]
at com.tridion.deployer.phases.DeployPipelineExecutor.execute(DeployPipelineExecutor.java:61) [cd_deployer.jar:na]
at com.tridion.deployer.TransactionManager.handleDeployPackage(TransactionManager.java:82) [cd_deployer.jar:na]
at com.tridion.deployer.queue.QueueLocationHandler$1.run(QueueLocationHandler.java:175) [cd_deployer.jar:na]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.FutureTask.run(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
The cd_extension.log
is created but stays empty, which makes sense I guess, since it looks like the storage can't be done at all. But its unclear to me why exactly (I don't see any references to anything si4t in the stacktrace).
A few interesting things I found was that my Deployer seems to be using Java 1.6.0_26 while in my Solr Admin I see that it is using 1.7.0_25 23.25-b01 (but I don't see that as the direct cause).
Any idea where I messed up or what might be causing this?
Update
I see the hibernate.validator.jar
and hibernate.annotations.jar
that come with SI4T are version 3.4.0 while SDL Tridion 2013 uses Hibernate 4.0.1, that seems to be an issue. But also I find that Hibernate 4 doesn't use hibernate-annotations
anymore, so it looks like I'm using a complete wrong set of jars for SI4T.
Update 2
Downloaded the jars from SI4T search integration with Tridion 2013 and trying with those. Getting a new error now, but I also see messages appearing in the cd_extensions.log
so I'm getting closer.
StorageManagerFactory - Fatal error, unable to load the StorageManagerFactory java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/SolrServerException
Update 3
Okay that error is because I was missing the Solr jars, after adding those I see the following in the cd_extension.log
:
FSSearchDAOFactory - Could not load SearchIndexer. Check your configuration.
Have added an answer with the steps required to get here and will dive further, any help is still appreciated.