从Java调用Clojure会抛出不包含堆栈跟踪的NullPointerException

4
这个问题涉及到缺失的NullPointerException堆栈跟踪信息。
我有一个Clojure文件,它通过以下方式被我的Java Web应用程序编译:
Compiler.loadFile("/tmp/test.clj");
Var cljFunc = RT.var("abc", "foo");
cljFunc.invoke(12);

然而,我在cljfunc.invoke(12)这一行遇到了一个空指针异常。我期望它能够显示(在堆栈跟踪中)异常发生的.clj文件中的行号。但是堆栈跟踪为空。我在Tomcat启动命令中添加了-XX:-OmitStackTraceInFastThrow以关闭JVM优化。但这并没有帮助。


你能发布一些源代码以及你是如何构建它的吗? - octopusgrabbus
你是否使用了某种记录器(设置或级别),过滤掉了异常? - Maarten Bodewes
我会尝试稍后发布源代码。不,这与日志记录无关。堆栈跟踪甚至没有出现在调试器中。 - scabbage
你的文件在 /tmp/test.clj,所以我猜测命名空间应该是 tmp.test 而不是 abc - Ankur
1个回答

3

我怀疑当你在invoke上调用时,cljFunc为空。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接