org.apache.jorphan.util.JMeterException: Error invoking bsh method: eva

使用fastJson来做json解析,出现报错。

Assertion failure message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray; i . . . ‘‘ : Typed variable declaration : Method Invocation jsonObject.getJSONObject

原因如下:

要解析的json体是这样的:

{"code":0,"msg":"ok","data":{"open_id":"2c2d714c1b577332be3eac9784f98d1d"}}

代码如下:

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;

String resp=new String(ResponseData);
JSONObject jsonObject=JSON.parseObject(resp);
int code=jsonObject.getIntValue("code");
JSONObject data=jsonObject.getJSONObject("data");

String msg = jsonObject.getString("msg");

if((code==0)&&(msg.equals("ok"))&&(data.toString()!="")){
Failure=false;
}else if (code!=0){
Failure=true;
FailureMessage="code!=0";
}else if(!msg.equals("ok")){
Failure=true;
FailureMessage="msg!=ok";
}else{
Failure=true;
FailureMessage="data返回数据有误";
}

如果期望结果刚好格式和{"code":0,"msg":"ok","data":{"open_id":"2c2d714c1b577332be3eac9784f98d1d"}}一致,就不会报错。

如果期望结果格式不一致,就会报错。

比如json格式是这样的:

{"code":1001,"msg":"\u7b7e\u540d\u5931\u8d25","data":[]}

分析之后,得出 json体中,解析data时出现了错误。

在eclipse中调试代码,定位出错代码行:

JSONObject data=jsonObject.getJSONObject("data");

原因是,如果data里面没有[{xxxxxxx}],那data是个JSONArray,不是JSONObject;

eclipse会这么报错:

java.lang.ClassCastException: com.alibaba.fastjson.JSONArray cannot be cast to com.alibaba.fastjson.JSONObject

修改代码如下:

如果data是JSONObject对象,就赋值JSONObject,如果data是JSONArray,就赋值JSONArray

把错误代码行 JSONObject data=jsonObject.getJSONObject("data");

替换为:

Object data = "";
if(jsonObject.containsKey("data")){
Object dataObject=jsonObject.get("data");
if(dataObject instanceof JSONObject){
data= jsonObject.getJSONObject("data");
}else if(dataObject instanceof JSONArray){
data=jsonObject.getJSONArray("data");
}
}else{
Failure=true;
FailureMessage="返回结果中没有data数据";
}

时间: 2024-11-05 13:04:09

org.apache.jorphan.util.JMeterException: Error invoking bsh method: eva的相关文章

Response code: 500 Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``public static void test(){ string input; input

jmeter  beanshell 报错: Response code: 500Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``public static void test(){     string input;      input=vars.get("aa");  

Jmeter BeanShell 引用变量报错jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Parse error at line 14, column 181 : Error or number too big for integer

如果你通过CSV Data Set Config或者_StringFromFile函数来参数化你的请求,需要特别注意当参数为纯数字时,jmeter会默认将其识别成int型数据,说明jmeter并不是默认以String类型对数据进行读取的:范围-2147483648到2147483647,如果超出这个范围(例如2147483648这个数字):jmeter控制台则会抛出如下异常:jmeter.util.BeanShellInterpreter: Error invoking bsh method:

Error invoking SqlProvider method (com.github.abel533.mapper.MapperProvider.dynamicSQL). Cause: java.lang.InstantiationException: com.github.abel533.mapper.MapperProvider

org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (com.github.abel533.mapper.MapperProvider.dynamicSQL).  Cause: java.lang.Instantiati

Spring Boot常见问题(二)Unable to start embedded container; nested exception is java.lang.NoSuchMethodError: org.apache.tomcat.util.scan.StandardJarScanner.setJarScanFilter(Lorg/apache/tomcat/JarScanFilter;

问题描述:通过Spring Boot官方提供的方式,写出如下HelloWorld代码. @Controller @EnableAutoConfiguration public class HelloWorld { @RequestMapping("/wu") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exce

启动tomcat直接报错:org.apache.tomcat.util.digester.Digester startElement

今天很奇怪,自己手动搭建了一个ssm(spring+springmvc+mybatis)的项目,然后添加到tomcat下,启动直接报错: 2017-3-19 9:24:47 org.apache.tomcat.util.digester.Digester startElement严重: Begin event threw errorjava.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.

Mybatis报错 Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.me.mybatis.pojo.Orders with invalid types () or values ().

在学mybaits的时候遇到了这个错误,而且卡住了我三个小时也找不到,最后分析出来不能初始化类,然后就结合着之前自己以前的一点经验发现只有有参构造没有无参构造,因此只需要添加上无参构造就可以了. 错误源码 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: Error ins

java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager

java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.getManager(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager 问题: 使用Springboot打包为war部署于Tomcat7中报错 java.lang.NoSuchMethodError: org.apache.tomcat.util.res.StringManager.get

hadoop错误org.apache.hadoop.util.DiskChecker$DiskErrorException Could not find any valid local directory for

错误: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory for 原因: 两种可能,hadoop.tmp.dir或者data目录存储空间不足 解决办法: 看了一下我的dfs状态,data使用率不到40%,所以推测是hadoop.tmp.dir空间不足,导致无法创建Jog临时文件.查看core-site.xml发现没有配置hadoop.tmp.dir,因此使

org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file

org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file 在$TOMCAT_HOME/conf/catalina.properties文件 的tomcat.util.scan.DefaultJarScanner.jarsToSkip中添加DB2驱动的Jar包文件名如”db2jcc4.jar” 即可.