You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器非GUI模式运行JMeter报错:ForbiddenClassException

关于JMeter非GUI模式运行时ForbiddenClassException错误的含义及解决思路

这个com.thoughtworks.xstream.security.ForbiddenClassException: org.apache.jmeter.save.ScriptWrapper错误,简单来说就是JMeter用来处理脚本序列化的XStream库,出于安全策略拦截了对ScriptWrapper类的访问。

具体解释下:
XStream是JMeter用来读写.jmx测试脚本的核心库,为了防止恶意脚本带来的安全风险,XStream后续加入了严格的类信任机制——默认只允许处理它预先列入白名单的类。当你尝试用非GUI模式运行test.jmx时,JMeter需要通过ScriptWrapper类来解析脚本内容,但这个类不在当前JMeter版本的XStream默认信任列表里,于是就触发了这个安全拦截错误。

通常触发这个错误的常见原因有两个:

  • 你通过sudo apt install jmeter安装的JMeter版本偏旧,而你的test.jmx脚本是用更高版本JMeter创建的,新旧版本的类结构差异导致安全检查触发;
  • 旧版JMeter的XStream安全配置本身就没有把ScriptWrapper加入信任白名单,这是一个历史兼容性问题。

如果需要解决这个问题,你可以试试这两个方案:

  • 方案一:升级JMeter到官方最新版
    因为apt源里的JMeter版本通常滞后于官方,直接去JMeter官网下载最新的二进制包,解压后用bin/jmeter命令运行测试,新版本已经修复了这个安全配置问题。
  • 方案二:手动添加类到XStream信任列表
    找到JMeter安装目录下的bin/user.properties文件,添加一行配置:
    jmeter.save.saveservice.class_names=org.apache.jmeter.save.ScriptWrapper
    
    (如果是非常旧的JMeter版本,可能需要改用xstream.mapper.allowlist=org.apache.jmeter.save.ScriptWrapper)
    保存后重新执行jmeter -n -t test.jmx即可。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:16:33