Hi Alex,
About now is a good time to read how Nutch deals with classloading.
Navigate to plugin central on the wiki and you will see the documentation.
hth you out
Lewis

On Tuesday, July 23, 2013, AC Nutch <[email protected]> wrote:
> Hi All,
>
> I'm attempting to build a Nutch plugin on Nutch 1.7 with some external
> dependencies. The way I've handled this in the past is to just put the
> dependencies in lib/ and be done with it. However, now I have some
> dependencies that are newer versions of dependencies already present in
> Nutch. For example, I'm using the Apache httpclient-4.2.5.jar library
> whereas Nutch appears to use httpclient-4.1.2 and httpclient-4.1.3.
> Unfortunately, I do need the plugin to compile and run with my version (I
> can't just downgrade, not a valid solution).
>
> I've added the necessary jars to my plugin's ivy.xml and they download
just
> fine and the plugin compiles, which is wonderful. However, when I go to
run
> it (in local mode) I get "Exception in thread "main"
> java.lang.NoClassDefFoundError:
> org/apache/http/client/utils/URLEncodedUtils". Moving my own later
versions
> of the file to the ClassPath in runtime/local/lib/ gives me additional
> issues - "Exception in thread "main" java.lang.NoSuchMethodError:
> org.apache.http.client.utils.URLEncodedUtils.parse" which appears to be an
> error caused by Nutch trying to use an older version of the httpclient
> library (it disappears if I remove the "older" jars from the classpath).
>
> My question is - how would I go about adding these dependencies such that
> my plugin would use these jars and I'm not having to remove libraries that
> Nutch may need? I believe I'm missing a critical step here or a missing
> directive in one of the plugin XML directive files... any  ideas?
>
> Thanks!
>
> Alex
>

-- 
*Lewis*

Reply via email to