Solr Exception al intentar integrarse con liferay

Estoy tratando de agregar apache solr 4.6 en la ventana 7 con tomcat 7.

También agregué solr, solrj y log4j en la carpeta tomcat lib. Copié el portlet web de solr en liferay e intenté iniciar el servidor, pero obtengo una excepción.

Alguien me puede decir a que se debe este error.

15:01:24,325 INFO [localhost-startStop-1][HotDeployImpl:185] Deploying solr-web from queue 15:01:24,326 INFO [localhost-startStop-1][PluginPackageUtil:1049] Reading plugin package for solr-web 15:01:24,610 ERROR [localhost-startStop-1][ContextLoader:227] Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.search.solr.server.BasicAuthSolrServer' defined in ServletContext resource [/WEB-INF/classes/META-INF/solr-spring.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.liferay.portal.search.solr.server.BasicAuthSolrServer]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1002) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:906) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:484) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at com.liferay.portal.spring.context.PortletContextLoaderListener.contextInitialized(PortletContextLoaderListener.java:85) at com.liferay.portal.deploy.hot.SpringHotDeployListener.doInvokeDeploy(SpringHotDeployListener.java:79) at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:41) at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:195) at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:97) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:88) at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56) at $Proxy29.fireDeployEvent(Unknown Source) at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164) at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154) at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44) at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54) at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116) at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.liferay.portal.search.solr.server.BasicAuthSolrServer]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:108) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280) ... 49 más Causado por: java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer en com.liferay.portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:71) en com.liferay .portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:81) en com.liferay.portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:75) en sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) en sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) en sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) en java.lang.reflect.Constructor.newInstance(Constructor.java:532) en org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) ... 51 más Causado por: java.lang.ClassNotFoundException: org.apache.solr.client.solrj.impl.CommonsHttpSolrServer en org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) en org.apache.catalina. cargador.WebappClassLoader.loadClass(WebappClassLoader.java:1559) ... 59 more 15:01:24,623 ERROR [localhost-startStop-1][HotDeployImpl:198] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error initializing Spring for solr-web com.liferay.portal.kernel.deploy.hot.HotDeployException: Error initializing Spring for solr-web at com.liferay.portal.kernel.deploy.hot.BaseHotDeployListener.throwHotDeployException(BaseHotDeployListener.java:46) at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:44) at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:195) at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:97) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:88) at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56) at $Proxy29.fireDeployEvent(Unknown Source) at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164) at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154) at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44) at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54) at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116) at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:679) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.liferay.portal.search.solr.server.BasicAuthSolrServer' defined in ServletContext resource [/WEB-INF/classes/META-INF/solr-spring.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.liferay.portal.search.solr.server.BasicAuthSolrServer]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1002) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:906) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:484) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) at com.liferay.portal.spring.context.PortletContextLoaderListener.contextInitialized(PortletContextLoaderListener.java:85) at com.liferay.portal.deploy.hot.SpringHotDeployListener.doInvokeDeploy(SpringHotDeployListener.java:79) at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:41) ... 32 más Causado por: org.springframework.beans.BeanInstantiationException: no se pudo crear una instancia de la clase de bean [com.liferay.portal.search.solr.server.BasicAuthSolrServer]: el constructor lanzó una excepción; La excepción anidada es java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer en org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141) en org.springframework.beans.factory.support. SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:108) en org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280) ... 49 más Causado por: java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/CommonsHttpSolrServer en com.liferay.portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:71) en com.liferay .portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:81) en com.liferay.portal.search.solr.server.BasicAuthSolrServer.(BasicAuthSolrServer.java:75) en sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) en sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) en sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) en java.lang.reflect.Constructor.newInstance(Constructor.java:532) en org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) ...

preguntado el 03 de diciembre de 13 a las 13:12

2 Respuestas

El complemento solr-web para liferay 6.1.x no es compatible con solr 4.6, es compatible con solr 1.4.

Si desea utilizar solr 4.6, debe modificar solr-web. Ver https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be a su otra pregunta sobre este asunto.

contestado el 23 de mayo de 17 a las 13:05

java.lang.ClassNotFoundException: 
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer at 
org.apache.catalina.loader.WebappClassLoader.loadClass...

Este error te dice la clase ̀org.apache.solr.client.solrj.impl.CommonsHttpSolrServer no fue encontrado Hay varias posibilidades para que ocurra este tipo de error.

1/ Esta clase puede ser necesaria para una versión de solrj diferente a la que puso en la carpeta lib o hay un conflicto entre diferentes versiones de bibliotecas

2/ La carpeta Tomcat Lib no se tiene en cuenta. Asegúrate de que esta ruta sea válida

3/ Tomcat PATH no está bien definido. Los scripts de inicio o ejecutables están ahí para instalar rutas y configurar carpetas (al menos en Linux, pero debería ser lo mismo en Windows ;-)). Verifique que inicie Tomcat de la manera recomendada

4/ Ha agregado jars a la carpeta lib y ha vuelto a implementar la aplicación. Reinicie tomcat para que la JVM tenga en cuenta los nuevos jars

Por cierto, estas bibliotecas son de terceros que no tienen que instalarse para todos los contextos de Tomcat. Te recomiendo como buena práctica agregarlos a la carpeta lib de webapps (WEB-INF/lib debería hacer el truco). Entonces se asegurará de no tener un cargador de clases en diferentes ramas en el árbol del cargador de clases.

EDITAR: Creo que este es un problema con su versión solr/solrj. Encontré eso en Solrj 4.6 SVN, no hay ningún rastro de un CommonsHTTPSolrServer Creo que esta clase se eliminó desde la versión 4.0 de Solr. El código que usa el cliente debe actualizarse a Solr 4 o su jar se debe degradar a 3.6.2 como máximo.

Respondido el 04 de diciembre de 13 a las 12:12

¿Hay alguna otra razón posible? ¿Esto podría estar relacionado con la versión? estoy usando solr 4.6 y liferay 6.1.2 CE ga3... porque ya revisé todas sus recomendaciones... todas están implementadas correctamente... - Mahesh

Investigué un poco y edité mi respuesta en consecuencia: Grooveek

los jar relacionados con solr 4.6 que agregué son slf4j-api-1.6.6, slf4j-log4j12-1.6.6, solr-core-4.6.0, solr-dataimporthandler-4.6.0, solr-dataimporthandler-extras-4.6.0 , solr-solrj-4.6.0 ...... ¿Me está aconsejando pasar a una versión inferior de solr como 4 e inferior? - Mahesh

Solo digo que las clases que usan el cliente solrj esperan una versión "anterior a solr 4.0". Tal vez su versión del portlet web de solr sea demasiado antigua. ¿Cuál es la versión que usas? Puedo ver en la web que puedes integrar liferay con solr 4 en la versión 6.1.2 EE - Grooveek

Lo siento, pero te pregunté sobre tu versión de Liferay: Grooveek

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.