Hello, I am trying to solve an issue in my project where I have the following setup. My application modules are AOT-compiled into several jars and then packaged with their 3rd party dependencies into an uberjar. As a result my uberjar contains my project's namespaces compiled to class files and dependencies (in this case clojure.java.jdbc) source clj files.
When I try to start the application it fails with the following stacktrace. Is there any limitation that prevents me running AOT-compiled namespaces using other namespaces available as clj on classpath? java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_102] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_102] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_102] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_102] at com.example.Launcher$ThreadLauncher.run(Launcher.java:42) ~[na:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102] Caused by: java.lang.NoClassDefFoundError: clojure/java/jdbc/Connectable at com.example.db.common.database__init.load(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.common.database__init.<clinit>(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_102] at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_102] at clojure.lang.RT.classForName(RT.java:2154) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.classForName(RT.java:2163) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.loadClassForName(RT.java:2182) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:412) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load$fn__5448.invoke(core.clj:5866) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load.doInvoke(core.clj:5865) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:408) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_one.invoke(core.clj:5671) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib.doInvoke(core.clj:5710) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:142) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_libs.doInvoke(core.clj:5749) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$require.doInvoke(core.clj:5832) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:421) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.password$loading__5340__auto____1250.invoke(password.clj:1) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.password__init.load(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.password__init.<clinit>(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_102] at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_102] at clojure.lang.RT.classForName(RT.java:2154) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.classForName(RT.java:2163) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.loadClassForName(RT.java:2182) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:412) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load$fn__5448.invoke(core.clj:5866) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load.doInvoke(core.clj:5865) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:408) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_one.invoke(core.clj:5671) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib.doInvoke(core.clj:5710) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:142) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_libs.doInvoke(core.clj:5749) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:634) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$use.doInvoke(core.clj:5843) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.user$loading__5340__auto____1248.invoke(user.clj:1) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.user__init.load(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.user__init.<clinit>(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_102] at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_102] at clojure.lang.RT.classForName(RT.java:2154) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.classForName(RT.java:2163) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.loadClassForName(RT.java:2182) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:412) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load$fn__5448.invoke(core.clj:5866) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load.doInvoke(core.clj:5865) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:408) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_one.invoke(core.clj:5671) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib.doInvoke(core.clj:5710) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:142) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_libs.doInvoke(core.clj:5753) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$require.doInvoke(core.clj:5832) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.init$loading__5340__auto____1246.invoke(init.clj:1) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.init__init.load(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.db.auth.init__init.<clinit>(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_102] at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_102] at clojure.lang.RT.classForName(RT.java:2154) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.classForName(RT.java:2163) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.loadClassForName(RT.java:2182) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:436) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RT.load(RT.java:412) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load$fn__5448.invoke(core.clj:5866) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load.doInvoke(core.clj:5865) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:408) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_one.invoke(core.clj:5671) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_lib.doInvoke(core.clj:5710) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:142) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$load_libs.doInvoke(core.clj:5749) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:137) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$apply.invoke(core.clj:632) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.core$require.doInvoke(core.clj:5832) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:408) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.services.activator$register_services.invoke(activator.clj:61) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.services.activator$startup.invoke(activator.clj:131) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.services.activator$_main.doInvoke(activator.clj:139) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.invoke(RestFn.java:397) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.AFn.applyToHelper(AFn.java:152) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at clojure.lang.RestFn.applyTo(RestFn.java:132) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] at com.example.services.activator.main(Unknown Source) ~[example-2.5.0-SNAPSHOT-standalone.jar:na] ... 6 common frames omitted Caused by: java.lang.ClassNotFoundException: clojure.java.jdbc.Connectable at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_102] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_102] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_102] ... 104 common frames omitted Best regards, Piotr -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.