You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Tommy Chheng <to...@gmail.com> on 2010/02/08 04:43:30 UTC
DataImportHandlerException for custom DIH Transformer
I'm having trouble making a custom DIH transformer in solr 1.4.
I compiled the "General TrimTransformer" into a jar. (just copy/paste
sample code from http://wiki.apache.org/solr/DIHCustomTransformer)
I placed the jar along with the dataimporthandler jar in solr/lib (same
directory as the jetty jar)
Then I added to my DIH data-config.xml file:
transformer="DateFormatTransformer, RegexTransformer,
com.chheng.dih.transformers.TrimTransformer"
Now I get this exception when I try running the import.
org.apache.solr.handler.dataimport.DataImportHandlerException:
java.lang.NoSuchMethodException:
com.chheng.dih.transformers.TrimTransformer.transformRow(java.util.Map)
at
org.apache.solr.handler.dataimport.EntityProcessorWrapper.loadTransformers(EntityProcessorWrapper.java:120)
I noticed the exception lists
TrimTransformer.transformRow(java.util.Map) but the abstract Transformer
class defines a two parameter method: transformRow(Map<String, Object>
row, Context context)?
--
Tommy Chheng
Programmer and UC Irvine Graduate Student
Twitter @tommychheng
http://tommy.chheng.com
RE: DataImportHandlerException for custom DIH Transformer
Posted by Vladimir Sutskever <Vl...@jpmorgan.com>.
I am experiencing a similar situation?
Any comments?
-----Original Message-----
From: Shashikant Kore [mailto:shashikant@gmail.com]
Sent: Wednesday, September 08, 2010 2:54 AM
To: solr-user@lucene.apache.org
Subject: Re: DataImportHandlerException for custom DIH Transformer
Resurrecting an old thread.
I faced exact problem as Tommy and the jar was in {solr.home}/lib as Noble
had suggested.
My custom transformer overrides following method as per the specification of
Transformer class.
public Object transformRow(Map<String, Object> row, Context
context);
But, in the code (EntityProcessorWrapper.java), I see the following line.
final Method meth = clazz.getMethod(TRANSFORM_ROW, Map.class);
This doesn't match the method signature in Transformer. I think this should
be
final Method meth = clazz.getMethod(TRANSFORM_ROW, Map.class,
Context.class);
I have verified that adding a method transformRow(Map<String, Object> row)
works.
Am I missing something?
--shashi
2010/2/8 Noble Paul നോബിള് नोब्ळ् <no...@corp.aol.com>
> On Mon, Feb 8, 2010 at 9:13 AM, Tommy Chheng <to...@gmail.com>
> wrote:
> > I'm having trouble making a custom DIH transformer in solr 1.4.
> >
> > I compiled the "General TrimTransformer" into a jar. (just copy/paste
> sample
> > code from http://wiki.apache.org/solr/DIHCustomTransformer)
> > I placed the jar along with the dataimporthandler jar in solr/lib (same
> > directory as the jetty jar)
>
> do not keep in solr/lib it wont work. keep it in {solr.home}/lib
> >
> > Then I added to my DIH data-config.xml file:
> > transformer="DateFormatTransformer, RegexTransformer,
> > com.chheng.dih.transformers.TrimTransformer"
> >
> > Now I get this exception when I try running the import.
> > org.apache.solr.handler.dataimport.DataImportHandlerException:
> > java.lang.NoSuchMethodException:
> > com.chheng.dih.transformers.TrimTransformer.transformRow(java.util.Map)
> > at
> >
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.loadTransformers(EntityProcessorWrapper.java:120)
> >
> > I noticed the exception lists TrimTransformer.transformRow(java.util.Map)
> > but the abstract Transformer class defines a two parameter method:
> > transformRow(Map<String, Object> row, Context context)?
> >
> >
> > --
> > Tommy Chheng
> > Programmer and UC Irvine Graduate Student
> > Twitter @tommychheng
> > http://tommy.chheng.com
> >
> >
>
> --
> -----------------------------------------------------
> Noble Paul | Systems Architect| AOL | http://aol.com
>
This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
Re: DataImportHandlerException for custom DIH Transformer
Posted by Shashikant Kore <sh...@gmail.com>.
Resurrecting an old thread.
I faced exact problem as Tommy and the jar was in {solr.home}/lib as Noble
had suggested.
My custom transformer overrides following method as per the specification of
Transformer class.
public Object transformRow(Map<String, Object> row, Context
context);
But, in the code (EntityProcessorWrapper.java), I see the following line.
final Method meth = clazz.getMethod(TRANSFORM_ROW, Map.class);
This doesn't match the method signature in Transformer. I think this should
be
final Method meth = clazz.getMethod(TRANSFORM_ROW, Map.class,
Context.class);
I have verified that adding a method transformRow(Map<String, Object> row)
works.
Am I missing something?
--shashi
2010/2/8 Noble Paul നോബിള് नोब्ळ् <no...@corp.aol.com>
> On Mon, Feb 8, 2010 at 9:13 AM, Tommy Chheng <to...@gmail.com>
> wrote:
> > I'm having trouble making a custom DIH transformer in solr 1.4.
> >
> > I compiled the "General TrimTransformer" into a jar. (just copy/paste
> sample
> > code from http://wiki.apache.org/solr/DIHCustomTransformer)
> > I placed the jar along with the dataimporthandler jar in solr/lib (same
> > directory as the jetty jar)
>
> do not keep in solr/lib it wont work. keep it in {solr.home}/lib
> >
> > Then I added to my DIH data-config.xml file:
> > transformer="DateFormatTransformer, RegexTransformer,
> > com.chheng.dih.transformers.TrimTransformer"
> >
> > Now I get this exception when I try running the import.
> > org.apache.solr.handler.dataimport.DataImportHandlerException:
> > java.lang.NoSuchMethodException:
> > com.chheng.dih.transformers.TrimTransformer.transformRow(java.util.Map)
> > at
> >
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.loadTransformers(EntityProcessorWrapper.java:120)
> >
> > I noticed the exception lists TrimTransformer.transformRow(java.util.Map)
> > but the abstract Transformer class defines a two parameter method:
> > transformRow(Map<String, Object> row, Context context)?
> >
> >
> > --
> > Tommy Chheng
> > Programmer and UC Irvine Graduate Student
> > Twitter @tommychheng
> > http://tommy.chheng.com
> >
> >
>
> --
> -----------------------------------------------------
> Noble Paul | Systems Architect| AOL | http://aol.com
>
Re: DataImportHandlerException for custom DIH Transformer
Posted by Noble Paul നോബിള് नोब्ळ् <no...@corp.aol.com>.
On Mon, Feb 8, 2010 at 9:13 AM, Tommy Chheng <to...@gmail.com> wrote:
> I'm having trouble making a custom DIH transformer in solr 1.4.
>
> I compiled the "General TrimTransformer" into a jar. (just copy/paste sample
> code from http://wiki.apache.org/solr/DIHCustomTransformer)
> I placed the jar along with the dataimporthandler jar in solr/lib (same
> directory as the jetty jar)
do not keep in solr/lib it wont work. keep it in {solr.home}/lib
>
> Then I added to my DIH data-config.xml file:
> transformer="DateFormatTransformer, RegexTransformer,
> com.chheng.dih.transformers.TrimTransformer"
>
> Now I get this exception when I try running the import.
> org.apache.solr.handler.dataimport.DataImportHandlerException:
> java.lang.NoSuchMethodException:
> com.chheng.dih.transformers.TrimTransformer.transformRow(java.util.Map)
> at
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.loadTransformers(EntityProcessorWrapper.java:120)
>
> I noticed the exception lists TrimTransformer.transformRow(java.util.Map)
> but the abstract Transformer class defines a two parameter method:
> transformRow(Map<String, Object> row, Context context)?
>
>
> --
> Tommy Chheng
> Programmer and UC Irvine Graduate Student
> Twitter @tommychheng
> http://tommy.chheng.com
>
>
--
-----------------------------------------------------
Noble Paul | Systems Architect| AOL | http://aol.com