【问题标题】:Grinder/Jython fails to find class in imported libraryGrinder/Jython 无法在导入的库中找到类
【发布时间】:2015-03-16 10:48:19
【问题描述】:

我正在学习 Grinder 3.11 来编写我的性能测试脚本。这是我用 Jython 编写的测试脚本:

from java.lang import ClassLoader
from com.fasterxml.jackson.databind import ObjectMapper
from java.net import URL, URLClassLoader

cl = ClassLoader.getSystemClassLoader()
for url in cl.getURLs():
    print url.getFile()

class TestRunner:
    def __call__(self):
        self.test_scenario()

当我使用 Grinder 启动它时,我不断收到以下错误

2015-03-16 11:52:56,783 ERROR krk-mpfxv-16: aborting process - Java exception initialising test script
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception initialising test script
        from com.fasterxml.jackson.databind import ObjectMapper
        File "/Users/mgawinec/projects/grinder-test/src/test/resources/./krk-mpfxv-file-store/current/grinder.py", line 4, in <module>
java.lang.NoClassDefFoundError: Could not initialize class com.fasterxml.jackson.databind.ObjectMapper
        at java.lang.Class.forName0(Native Method) ~[na:1.8.0_05]
        at java.lang.Class.forName(Class.java:340) ~[na:1.8.0_05]

当我评论 jackson 库的导入并在 classpath 中打印 jars 和脚本的其余部分时,我得到了

/Users/xx/projects/grinder-test/src/test/resources/lib/grinder.jar
/Users/xx/projects/grinder-test/src/test/resources/lib/jackson-databind-2.2.3.jar
/Users/xx/projects/grinder-test/src/test/resources/lib/htmlcleaner-2.6.1.jar
/Users/xx/projects/grinder-test/src/test/resources/lib/jackson-core-2.0.0.jar
/Users/xx/projects/grinder-test/src/test/resources/lib/grinder-dcr-agent-3.11.jar

在仔细检查之后,我可以确认 ObjectMapper 类在 jackson-databind-2.2.3.jar 的正确包中。

我在 Jython/Grinder 组合中的其他外部库没有这样的问题。

我怎样才能找到问题的根本原因?

【问题讨论】:

    标签: jython grinder


    【解决方案1】:

    这意味着 ObjectMapper 正在调用 CLASSPATH 中缺少的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2014-12-03
      相关资源
      最近更新 更多