Can you check build/plugins/<your plugin> to see if mail.jar is there?

dogacan-mbp:~/Documents/kod/nutch-svn$ ls build/plugins/parse-pdf/
FontBox-0.1.0-dev.jar   parse-pdf.jar
PDFBox-0.7.3.jar        plugin.xml

It should be there, based on the files you sent, but maybe there is a bug there
in nutch we are missing.

On Sun, Jan 25, 2009 at 11:47 PM, Antony Bowesman <[email protected]> wrote:
> Otis Gospodnetic wrote:
>>
>> Step one is to identify the exact jar where this class lives.  Are you
>> sure it's in mail.jar?  Maybe it's in activate.jar?
>
> $ jar tvf mail.jar | grep ParseException
>   385 Wed Oct 17 11:05:30 EST 2007 javax/mail/internet/ParseException.class
>
> It's javamail 1.4.1.  If I put mail.jar into my application's lib directory,
> where all jars are put on the classpath it finds the class.  However, then
> it fails on another class from the BouncyCastle jars, also part of the
> plugin, so it's some Nutch issue.
>
> In the debugger, it shows the plugin descriptor's classloader having the 4
> libraries in the loader.ucp.path ArrayList.
>
> ExtensionClass.getExtensionInstance() does the following
>
>        Class extensionClazz = loader.loadClass(getClazz());
>        // lazy loading of Plugin in case there is no instance of the plugin
>        // already.
>        this.pluginRepository.getPluginInstance(getDescriptor());
>        Object object = extensionClazz.newInstance();
>
> and it is the call to newInstance() which gives the CNF exception.  The
> final entry in the stack is
>
> Launcher$AppClassLoader(ClassLoader).loadClassInternal(String), where the
> arg is javax.mail.internet.ParseException.
>
> I've not managed to figure out what part of the object creation the Nutch
> classload takes part in, but it seems it doesn't have a lot to do with the
> classloading for the plugins.
>
> Antony
>
>
>>
>> Otis
>> --
>> Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch
>>
>>
>>
>> ----- Original Message ----
>>>
>>> From: Antony Bowesman <[email protected]>
>>> To: [email protected]
>>> Sent: Friday, January 23, 2009 2:49:48 AM
>>> Subject: Adding new plugin and classloading issues
>>>
>>> I'm using the 0.9 plugin framework and am trying to add a new plugin and
>>> am having classloading issues.
>>>
>>> I want to use Javamail's mail.jar and BouncyCastle jars.  My plugin
>>> implemnentation catches javax.mail.internet.ParseException and when it tries
>>> to create the new instance of my Parser, it gives
>>>
>>> java.lang.NoClassDefFoundError: javax/mail/internet/ParseException
>>>        at java.lang.Class.getDeclaredConstructors0(Native Method)
>>>        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
>>>        at java.lang.Class.getConstructor0(Class.java:2699)
>>>        at java.lang.Class.newInstance0(Class.java:326)
>>>        at java.lang.Class.newInstance(Class.java:308)
>>>        at
>>> org.apache.nutch.plugin.Extension.getExtensionInstance(Extension.java:160)
>>>        at
>>> org.apache.nutch.parse.ParserFactory.getParsers(ParserFactory.java:130)
>>>
>>> My plugin.xml has
>>>
>>>
>>> I have tried it with the export for all libraries, also by having a
>>> lib-javamail plugin, which does an export for mail.jar and with my plugin
>>> having the
>>>
>>>
>>> but it just doesn't work.  It seems identical to the standard PDF parsing
>>> or the POI based parsers, so I'm at a loss...
>>>
>>> It's a stand alone app, no Tomcat or anything else.
>>>
>>> Any ideas?
>>> Antony
>>
>>
>
>



-- 
Doğacan Güney

Reply via email to