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.

Reply via email to