如何调试 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 运行时异常?的主要内容,如果未能解决你的问题,请参考以下文章