[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [geomesa-users] Using the Java API - NoClassDefFoundError
|
Connor,
You are welcome, I'm glad that did it.
You need the geomesa-core artifact.
We have recently changed the way we support accumulo version and the
name of the artifact for accumulo1.5 is:
<dependency>
<groupId>geomesa</groupId>
<artifactId>geomesa-core-accumulo1.5</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Hunter
On 05/21/2014 07:47 PM, Connor Manning wrote:
Hi Hunter, thanks for that - explicitly including Hadoop solved that issue.
I have a further question now - previously my project was manually
managed without Maven and I've since converted it (due to run-time
ClassDefNotFound errors that were likely caused by improperly managed
jars).
So what is the proper was to introduce a Maven dependency on a locally
installed GeoMesa so I can make use of the full API? Is there perhaps
a sample pom somewhere that illustrates this? My initial inclination
was:
<dependency>
<groupId>geomesa</groupId>
<artifactId>geomesa</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>/Users/connor/code/geomesa/geomesa-dist/target/geomesa-dist-1.0.0-SNAPSHOT.jar</systemPath>
<type>jar</type>
</dependency>
But this is not correct, and it does not pull in all of GeoMesa's
dependencies. I would assume there's a better way than adding a
similar block for each Jar nested in
geomesa-dist-1.0.0-SNAPSHOT-distribution.tar.gz.
Thanks for your help and patience,
Connor
On Mon, May 19, 2014 at 7:45 AM, Hunter Provyn <fhp@xxxxxxxx> wrote:
Hi Connor,
The short answer is yes, you need to add the hadoop client not to the
accumulo iterators lib/ext but as a compiled dependency in your project
itself.
GeoMesa depends on the hadoop-client but does not include it in the jar.
If you add the following to the pom of your project, that should resolve the
issue:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.2.0</version>
</dependency>
Hunter
On 05/17/2014 05:21 PM, Connor Manning wrote:
Hello, I am trying to get some basic functionality for writing and reading
with GeoMesa from Java. I'm working from documentation.pdf in the
geomesa-dist/target area.
I've extracted
geomesa/geomesa-dist/target/geomesa-dist-1.0.0-SNAPSHOT-distribution.tar.gz
after doing a Maven install, and then I have placed all of the
subdirectories from there in my Java classpath (according to Section 2.3 in
the documentation).
Then I wrote a small Java program that just creates a DataStore like in
Section 3, which builds with no errors - however when running it there are
many errors. I am just trying a mock Accumulo instance for now, but I do
have Accumulo, Hadoop, and Zookeeper installed.
It looks like the root cause of the failure is
"java.lang.ClassNotFoundException: org.apache.hadoop.io.Writable". Do I
need to add libraries from my Hadoop installation in addition to the HDFS
jar in geomesa-dist?
Attached are my simple Java file I'm trying to run, the terminal output, and
brief build/run scripts to demonstrate what my classpath looks like.
Thanks for any pointers in the right direction,
Connor
_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
http://www.locationtech.org/mailman/listinfo/geomesa-users
_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
http://www.locationtech.org/mailman/listinfo/geomesa-users