当前位置: 首页 > 知识库问答 >
问题:

使用shell.parse解析Groovy代码会导致大量java.lang.ClassNotFoundException

单于海荣
2023-03-14

我在我的Tomcat/Java应用程序中有一个解析代码的GroovyShell实例。解析非常慢,100行大约1秒。在分析应用程序时,我注意到解析抛出了大量java.lang.ClassNotFoundException异常。我想有什么东西在吞噬它们,因为我在原木的任何地方都没有看到它们。由于脚本使用了大量主应用程序的类,所以我假设这就是导致应用程序变慢的原因。

有没有办法让我捕捉那些异常并获取它们的数据?是什么引起的呢?有没有可能我使用了错误的类加载器?

共有1个答案

俞学
2023-03-14

有没有办法让我捕捉那些异常并获取它们的数据?

如果没有更多的信息来说明是什么导致了这些疾病,很难回答。可能是您引用的类在适当的类加载器中不可用。例外情况可能是在意料之中的。需要更多的信息来回答这个问题。

是什么引起的呢?

引用不可加载的类的代码是导致这些问题的一个原因。

有没有可能我使用了错误的类加载器?

是的。如果没有看到您的代码,也没有更多地了解哪些类是无法找到的,就很难确定这就是问题所在。

 类似资料:
  • 由于Groovy擅长解析几乎任何东西,因此搜索如何解析Groovy代码不会显示任何好的结果-所以我希望SO社区能够提供帮助:-) 我想为grails领域类编写某种(图形化)编辑器,但不想重新发明轮子。 通过反射检查域类很容易,但是我想更进一步——我想修改代码并将其作为域类文件写回来。 一个问题是反射(以及afaik AST)会丢弃所有注释和格式(格式不是大问题,我可以打印文件)… 我可以在哪里找到

  • 例如,我有一个包含一些属性的Jenkinsfile 我想在groovy代码中解析上面的Jenkinsfile,以便访问一些属性值。 当我像这样使用GroovyShell时 我得到这个错误 我可能能够通过一些Groovy元编程绕过特定错误,但是,我不确定这是否是正确的方向。我的问题是,在Groovy代码中解析Jenkinsfile的最佳方法是什么?这就是Groovy DSL,我希望它更简单。

  • 问题内容: 我正在使用Grails 1.1 beta2。我需要将大量数据导入Grails应用程序。如果我反复实例化grails域类然后保存它,则性能会降低到无法接受的程度。以从电话簿导入人为例: 事实证明这是缓慢的。Grails邮件列表上的某人建议在事务中分批保存。所以现在我有: 这必须至少在开始时更快。每笔交易会保存500条记录。随着时间的流逝,交易花费的时间越来越长。最初的几笔交易大约需要5秒

  • 我在JMeter中有一个Config元素,特别是用户定义的变量。 我有变量用户与值贾斯汀,我怎么能在groovy代码(一个JSR223断言)中使用这个变量?

  • 我正在创建一个int数组SecretNumber。当我将数组大小声明为数字时,没有越界异常,但当我用变量(numDigits)声明数组大小时,在索引0处得到行“secretNumber[I]=val”的越界异常。这是类: 这是执行这些方法的主体,我在设置数组之前运行numDigits setter: 如果我设置了NumDigits,为什么索引0会超出界限??

  • 我只使用了库中的几个实际类,即: 提前道谢。