[ https://issues.apache.org/jira/browse/SOLR-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12792792#action_12792792 ]
Noble Paul commented on SOLR-1675: ---------------------------------- drop the jar in example/solr/lib > Placing Custom Transform in example/lib directory does not work properly > ------------------------------------------------------------------------ > > Key: SOLR-1675 > URL: https://issues.apache.org/jira/browse/SOLR-1675 > Project: Solr > Issue Type: Bug > Components: contrib - DataImportHandler > Affects Versions: 1.4 > Reporter: Matt Inger > Assignee: Noble Paul > Priority: Blocker > Attachments: SqlArrayTransformer.java > > > I have created a Custom transformer for transforming a javax.sql.Array > instance into a java.lang.Object[] value, and placed it in the example/lib > directory. I then configured the transformer appropriately in my > db-data-config.xml: > {code} > <entity ... > transformer="org.apache.solr.handler.dataimport.SqlArrayTransformer" > {code} > However, when i try to actually index my documents, i get the following error > in the console: > {code} > org.apache.solr.handler.dataimport.DataImportHandlerException: > java.lang.NoClassDefFoundError: org/apache/solr/handler/dataimport/Transformer > at > org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:424) > at > org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) > at > org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) > at > org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) > at > org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) > at > org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) > Caused by: java.lang.NoClassDefFoundError: > org/apache/solr/handler/dataimport/Transformer > at java.lang.ClassLoader.defineClass1(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:620) > at > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) > at java.net.URLClassLoader.access$100(URLClassLoader.java:56) > at java.net.URLClassLoader$1.run(URLClassLoader.java:195) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:188) > at java.lang.ClassLoader.loadClass(ClassLoader.java:306) > at java.lang.ClassLoader.loadClass(ClassLoader.java:251) > at > org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:375) > at java.lang.ClassLoader.loadClass(ClassLoader.java:299) > at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:579) > at java.lang.ClassLoader.loadClass(ClassLoader.java:299) > at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:579) > at java.lang.ClassLoader.loadClass(ClassLoader.java:251) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:242) > at > org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:357) > at > org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:728) > at > org.apache.solr.handler.dataimport.EntityProcessorWrapper.loadTransformers(EntityProcessorWrapper.java:103) > {code} > It seems there is some issue with the classloader going on here, and the only > solution to this problem seems to be to find the exploded web application in > the "work" directory, and place the .jar file for my transformer in the > WEB-INF/lib directory there. My guess is that the classloader for the custom > transformer class is not using the web application's class loader as it's > parent classloader, and as a result, the Transformer class can't be found. > I believe I tried this in 1.5-dev as well and had no success either. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.