You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@pig.apache.org by Paolo Castagna <ca...@googlemail.com> on 2012/04/10 22:28:56 UTC

ClassNotFoundException: org.antlr.runtime.tree.Tree

Hi,
I am using Pig version 0.9.2 and I have this in my pom.xml file:

    <dependency>
      <groupId>org.apache.pig</groupId>
      <artifactId>pig</artifactId>
      <version>0.9.2</version>
    </dependency>

I am running a trivial example:

	PigServer pig = new PigServer("local");
	pig.registerJar("./target/jena-grande-0.1-SNAPSHOT.jar");
	pig.registerQuery("quads = LOAD './src/test/resources/data.nq' USING
org.apache.jena.grande.pig.RdfStorage() AS (g,s,p,o);");
	pig.registerQuery("a = FILTER quads BY ( p ==
'<http://xmlns.com/foaf/0.1/name>' ) ;");
	pig.registerQuery("b = FILTER a BY ( o == '\"Bob\"' ) ;");
	pig.store("b", "./target/output", "org.apache.jena.grande.pig.RdfStorage()");

And I have this exception:

Exception in thread "main" java.lang.NoClassDefFoundError:
org/antlr/runtime/tree/Tree
	at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1632)
	at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1584)
	at org.apache.pig.PigServer.registerQuery(PigServer.java:584)
	at org.apache.pig.PigServer.registerQuery(PigServer.java:597)
	at org.apache.jena.grande.examples.RunPig.main(RunPig.java:13)
Caused by: java.lang.ClassNotFoundException: org.antlr.runtime.tree.Tree
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	... 5 more

Is ANTLR a runtime dependency?

If so, I checked in the Pig's pom.xml but I do not see ANTLR there:
http://repo1.maven.org/maven2/org/apache/pig/pig/0.9.2/pig-0.9.2.pom

I added this to my project pom.xml file:

    <dependency>
      <groupId>org.antlr</groupId>
      <artifactId>antlr-runtime</artifactId>
      <version>3.4-beta4</version>
    </dependency>

That seems to be working (at least, my NoClassDefFoundError is gone).

Please, let me know if this is a known issue or I am doing something stupid here.

Thanks,
Paolo