如何调试 grails 运行时异常?

Posted

技术标签:

【中文标题】如何调试 grails 运行时异常?【英文标题】:How to debug grails runtime exception? 【发布时间】:2010-09-14 17:22:43 【问题描述】:

我有一个 grails 项目和一个 java 项目。 java 项目是一组独立的 POJO 类,我只是将它们转储到我的 grails 项目下的 src/java 中。

在控制器中,我为这个包添加了一个导入语句。

现在,当我执行 grails run-app 并尝试运行程序时,我得到了 grails 运行时异常。它是说 NoClassDefFound 用于我的一个 POJO 导入的包中的类。

错误消息显示在我的 Controller 的一行上,但缺少的类来自我的 POJO 需要的外部 jar。我将它抱怨的 .jar 移到了 grails 项目的 lib 文件夹中。我还需要做什么?

我如何找出真正导致此问题的原因?

谢谢!

【问题讨论】:

我会先尝试 grails clean...,然后在将 jar 移动到 lib 文件夹后尝试 grails run-app 我可以在环境中改变什么会导致症状吗? 你在 Tomcat 上运行吗?您的应用服务器是否抱怨加载 JAR 文件?有时如果罐子有问题,容器不会加载它。调高日志记录级别,看看您是否看到类似“jar not loaded”之类的信息。 这只是在我执行 grail run-app 时使用 Jetty 或 wahtever 运行,而不是 tomcat 【参考方案1】:

一种低级方法:运行ProcessMonitor(它现在集成了以前单独的文件监视器)。有了它,您可以看到 JVM 正在搜索的类文件。

另外,您可以将 -verbose:class 添加到 grails 的 bin 目录下 startGrails/startGrails.bat 中定义的 JAVA_OPTS 中。这将显示类加载器的输出(详细!)。

可能还需要其他 JAR。

【讨论】:

【参考方案2】:

您是否尝试过将此 jar 文件添加为 BuildConfig.groovy 的依赖项? 让 Grails 处理所有依赖项。

【讨论】:

以上是关于如何调试 grails 运行时异常?的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决

升级到 .NET 6 时,Web 项目引发运行时异常

CLR 调试体系结构

Android:未找到类运行时异常 - 仅发布版本

c++ 未处理的异常 - 如何调试

如何包装检查的异常但在 Java 中保留原始运行时异常