frenchy64 / clj-plaza

clojure's rdf framework
2 stars 1 forks source link

"lein test" fails when cannot find class: #1

Open gfredericks opened 13 years ago

gfredericks commented 13 years ago

When I clone this project and run "lein test" or "lein deps && lein test", I get the following stacktrace (after a series of reflection warnings):

Exception in thread "main" java.lang.ClassNotFoundException: org.mulgara.connection.ConnectionFactory (mulgara.clj:14) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5376) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5357) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.access$100(Compiler.java:35) at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:4921) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5369) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5357) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyze(Compiler.java:5151) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:4670) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:4328) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3173) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5367) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5357) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyze(Compiler.java:5151) at clojure.lang.Compiler$HostExpr$Parser.parse(Compiler.java:830) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5369) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.analyze(Compiler.java:5151) at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:4670) at clojure.lang.Compiler$FnMethod.parse(Compiler.java:4328) at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3173) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5367) at clojure.lang.Compiler.analyze(Compiler.java:5190) at clojure.lang.Compiler.eval(Compiler.java:5421) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn4511.invoke(core.clj:4905) at clojure.core$load.doInvoke(core.clj:4904) at clojure.lang.RestFn.invoke(RestFn.java:409) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:143) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4800) at clojure.lang.RestFn.applyTo(RestFn.java:138) at clojure.core$apply.invoke(core.clj:544) at clojure.core$use.doInvoke(core.clj:4880) at clojure.lang.RestFn.invoke(RestFn.java:409) at plaza.rest.core_test$eval2555$loading4410auto__2556.invoke(core_test.clj:1) at plaza.rest.core_test$eval2555.invoke(core_test.clj:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn__4511.invoke(core.clj:4905) at clojure.core$load.doInvoke(core.clj:4904) at clojure.lang.RestFn.invoke(RestFn.java:409) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:143) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4800) at clojure.lang.RestFn.applyTo(RestFn.java:138) at clojure.core$apply.invoke(core.clj:542) at clojure.core$require.doInvoke(core.clj:4869) at clojure.lang.RestFn.invoke(RestFn.java:409) at user$eval9.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5414) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.eval(Compiler.java:5391) at clojure.core$eval.invoke(core.clj:2382) at clojure.main$eval_opt.invoke(main.clj:235) at clojure.main$initialize.invoke(main.clj:254) at clojure.main$null_opt.invoke(main.clj:279) at clojure.main$main.doInvoke(main.clj:354) at clojure.lang.RestFn.invoke(RestFn.java:422) at clojure.lang.Var.invoke(Var.java:369) at clojure.lang.AFn.applyToHelper(AFn.java:165) at clojure.lang.Var.applyTo(Var.java:482) at clojure.main.main(main.java:37) Caused by: java.lang.ClassNotFoundException: org.mulgara.connection.ConnectionFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:58) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at clojure.lang.RT.classForName(RT.java:1566) at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:851) at clojure.lang.Compiler$HostExpr.access$300(Compiler.java:653) at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2150) at clojure.lang.Compiler.analyzeSeq(Compiler.java:5369) ... 81 more

frenchy64 commented 13 years ago

Looks like the Mulgara jar is missing.

Try downloading it and adding it to the classpath.

http://www.mulgara.org/download.html

gfredericks commented 13 years ago

Is this something that can be fixed in the repo? I was hoping maybe it could be added to the project.clj, but I couldn't find anything in the standard maven repos.

frenchy64 commented 13 years ago

I can't find it in a maven repo either.

Leiningen isn't very well setup for local dependencies AFAIK, so getting it from maven is optimal.

I get another error, I think I know why. I bumped up the version of clojure that plaza depends on and I think clojure.http got deprecated. Maybe :)

gfredericks commented 13 years ago

If the lib can't be added to project.clj, I can at least make a note in the README about what needs to be setup. I'm a little disappointed that the original author put all his docs on an external site rather than in the repo.

frenchy64 commented 13 years ago

The instructions for each supported triple store are at the bottom of this page FYI

http://antoniogarrote.github.com/clj-plaza/documentation/2010/05/05/rdf.html

frenchy64 commented 13 years ago

Hey Gary,

I've added some more dependencies, the tests run and pass when I use VimClojure but lein test fails, with an error about a Jena class not being found that is definitely in the classpath. Weird.

Pull this branch and give it a shot.

https://github.com/frenchy64/clj-plaza/tree/deps-resolve

I've put mulgara libs in the directory "local-libs".

Do cp local-libs/* lib

after each lein deps.

Ambrose

gfredericks commented 13 years ago

Ambrose,

My "lein test" fails as well, but with a smattering of different errors. It also seems to hang instead of finishing (output here: https://gist.github.com/888273).

I'll probably be playing with this all day, but I'm still not too familiar with the project (or the semantic web concepts for that matter), so I don't know how much help I'll be at first.

Gary

frenchy64 commented 13 years ago

It's almost definitely a mismatched/old Jena jar. A brief google search shows plenty of cases where NoClassDefFound or IncompatibleClassChangeError are because of this.

Still, puzzles me.

Ambrose