操作环境
| ... |
... |
| 操作系统 |
Windows 10 |
| JVM版本 |
Oracle JDK 1.8.0_131 |
| 沙箱容器版本 |
1.1.2 |
| 沙箱API版本 |
1.1.2 |
问题描述
sandbox 1.1.2版本测试
springboot版本:1.5.9.RELEASE
okhttp3版本:3.12.1
拦截okhttp3.RealCall的execute方法报java.lang.LinkageError错误
重现步骤
- 拦截
okhttp3.RealCall类的execute方法
- 测试代码使用springboot暴露http接口,在接口内调用okhttp3发送http请求
- 出现
java.lang.LinkageError
相关代码如下:
sandbox代码:
new EventWatchBuilder(moduleEventWatcher)
.onClass("okhttp3.RealCall")
.onBehavior("execute")
.onWatch(new AdviceListener() {
@Override
public void before(Advice advice) throws Throwable {
}
@Override
public void afterReturning(Advice advice) throws Throwable {
}
@Override
public void afterThrowing(Advice advice) throws Throwable {
}
});
springboot代码:
@GetMapping("/okHttp")
public String testOkHttp() throws IOException {
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url("http://localhost:8080/api").build();
okhttp3.Response execute = client.newCall(request).execute();
return execute.body().string();
}
附件
error.log
操作环境
问题描述
sandbox 1.1.2版本测试
springboot版本:1.5.9.RELEASE
okhttp3版本:3.12.1
拦截
okhttp3.RealCall的execute方法报java.lang.LinkageError错误重现步骤
okhttp3.RealCall类的execute方法java.lang.LinkageError相关代码如下:
sandbox代码:
springboot代码:
附件
error.log