Hi there, i want to register a custom EventListener to the DataImportHandler, but i get a NoClassDefFoundError. My configuration: Gentoo Linux. Solr home is /opt/solr. The solr.war file is deployed in an existing tomcat at /opt/tomcat/webapps The solr version is 3.6, tomcat version is 6.0.35, oracle jdk 1.7.0_03.
MyEventListener implements org.apache.solr.handler.dataimport.EventListener. It is in a jar file in /opt/solr/myproject/lib. (Here is also the mysql jdbc driver jar, which can be loaded) In the solrconfig.xml i added following lib-tags: <lib dir="/opt/solr/dist/" regex="apache-solr-dataimporthandler-.*\.jar" /> <lib dir="/opt/solr/myproject/lib/" regex=".*\.jar" /> and following DataImportHandler: <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">db-data-config.xml</str> </lst> </requestHandler> The db-data-config.xml looks like: <dataConfig> <dataSource driver="com.mysql.jdbc.Driver" url="..." user="..." password="..." /> <document name="mydocuments" onImportEnd="test.MyEventListener"> <entity name="mydocument" query="SELECT *FROM mydocuments WHERE valid = true"/> </document> </dataConfig> But when i run the full-import command, solr imports the documents, but when it tries to load my EventListener then following Exception is thrown: Sever: Full Import failed:java.lang.NoClassDefFoundError: org/apache/solr/handler/dataimport/EventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:410) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:1100) at org.apache.solr.handler.dataimport.DocBuilder.invokeEventListener(DocBuilder.java:158) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:251) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:426) Caused by: java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.EventListener at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 23 more I have also tried to put the solr jars in a shared lib folder of tomcat, but with the same error. Can anybody help? Thanks a lot in advance. Best regards, Andre -- View this message in context: http://lucene.472066.n3.nabble.com/DataImportHandler-Custom-EventListener-tp3979799.html Sent from the Solr - User mailing list archive at Nabble.com.