qunarcorp / bistoury

Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
GNU General Public License v3.0
4.01k stars 824 forks source link

debug调试时提示“没有那个文件或目录”---监测的路径不对 #70

Closed gaofeng36599 closed 4 years ago

gaofeng36599 commented 4 years ago

在“在线debug”上找到对应类,点击调试时提示如下: 反编译失败,/weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录)

分析agent报文发现根路径少了一个/home,详细报文如下: [14:06:16 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.remoting.netty.TaskProcessor] - receive decompiler command, id [191224.140615.9.1.183.120.18588.3254], command [DecompilerCommand{className='com.gf.test.networktest.controller.impl.NetworkTestControllerImpl', classPath='file:/home/weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar!/com/gf/test/networktest/controller/impl/NetworkTestControllerImpl.class'}] [14:06:16 [log-agent-exec-0] QTraceId[] ERROR q.t.b.c.decompiler.DecompilerTask] - decompiler error, command: DecompilerCommand{className='com.gf.test.networktest.controller.impl.NetworkTestControllerImpl', classPath='file:/home/weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar!/com/gf/test/networktest/controller/impl/NetworkTestControllerImpl.class'} java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录)

请问这是什么情况导致的?

gaofeng36599 commented 4 years ago

容器使用的是weblogic

xleiy commented 4 years ago

路径处理错了qunar/tc/bistoury/commands/decompiler/DecompilerTask.java:148,我改下

xleiy commented 4 years ago

已修复

gaofeng36599 commented 4 years ago

您好, 部分类可以进入反编译后的类,但是方法内全部显示“// $FF: Couldn't be decompiled” 部分类点击“调试”,提示“反编译失败”,后台报文如下: [16:40:14 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.remoting.netty.RequestHandler] - agent receive request: id=191224.164014.9.1.183.120.16434.79, sourceIp=/9.1.183.120:9880, code=202 [16:40:14 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.agent.common.pid.PidUtils] - get pid by PidBySystemPropertyHandler success, pid is 15888 [16:40:14 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.remoting.netty.TaskProcessor] - receive arthas command, id [191224.164014.9.1.183.120.16434.79], command [jarclasspath com.gf.test.checking.controller.impl.AccCheckPayToAntControllerImpl -pid15888] [16:40:14 [log-agent-exec-0] QTraceId[] INFO q.t.b.remoting.netty.TaskProcessor] - arthas command finish, id [191224.164014.9.1.183.120.16434.79], command [jarclasspath com.gf.test.checking.controller.impl.AccCheckPayToAntControllerImpl -pid15888] [16:40:14 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.remoting.netty.RequestHandler] - agent receive request: id=191224.164014.9.1.183.120.16434.80, sourceIp=/9.1.183.120:9880, code=203 [16:40:14 [bistoury-agent-netty-thread-1] QTraceId[] INFO q.t.b.remoting.netty.TaskProcessor] - receive decompiler command, id [191224.164014.9.1.183.120.16434.80], command [DecompilerCommand{className='com.gf.test.checking.controller.impl.AccCheckPayToAntControllerImpl', classPath='file:/home/weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar!/com/gf/test/checking/controller/impl/AccCheckPayToAntControllerImpl.class'}] WARN: Method ()V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method dumpPayToAntData ()V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method autoCheckPayToAnt ()V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method autoCheckPayToAntPolicy ()V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method autoCheckPayToAntClaim ()V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method exportExcel (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method operateCheck (Ljava/util/List;)Ljava/util/List; couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more WARN: Method operateCheckJS (Ljava/util/List;)Ljava/util/List; couldn't be decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:107) at qunar.tc.decompiler.struct.StructMethod.expandData(StructMethod.java:91) at qunar.tc.decompiler.main.rels.MethodProcessorRunnable.codeToJava(MethodProcessorRunnable.java:69) at qunar.tc.decompiler.main.rels.ClassWrapper.init(ClassWrapper.java:69) at qunar.tc.decompiler.main.ClassesProcessor.initWrappers(ClassesProcessor.java:378) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:326) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadBytecode(LazyLoader.java:50) ... 20 more ERROR: Class com/gf/test/checking/controller/impl/AccCheckPayToAntControllerImpl couldn't be fully decompiled. java.lang.RuntimeException: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadPool(LazyLoader.java:43) at qunar.tc.decompiler.struct.StructClass.getPool(StructClass.java:130) at qunar.tc.decompiler.main.ClassWriter.methodToJava(ClassWriter.java:767) at qunar.tc.decompiler.main.ClassWriter.classToJava(ClassWriter.java:212) at qunar.tc.decompiler.main.ClassesProcessor.writeClass(ClassesProcessor.java:333) at qunar.tc.decompiler.main.Fernflower.getClassContent(Fernflower.java:122) at qunar.tc.decompiler.struct.ContextUnit.save(ContextUnit.java:96) at qunar.tc.decompiler.struct.StructContext.saveContext(StructContext.java:59) at qunar.tc.decompiler.main.Fernflower.decompileContext(Fernflower.java:97) at qunar.tc.bistoury.commands.decompiler.Decompiler.decompileContext(Decompiler.java:97) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompilerJar(DecompilerTask.java:178) at qunar.tc.bistoury.commands.decompiler.DecompilerTask.decompile(DecompilerTask.java:114) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:93) at qunar.tc.bistoury.commands.decompiler.DecompilerTask$1.call(DecompilerTask.java:82) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.FileNotFoundException: /weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar (没有那个文件或目录) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.jar.JarFile.(JarFile.java:166) at java.util.jar.JarFile.(JarFile.java:103) at qunar.tc.bistoury.commands.decompiler.IBytecodeProviderImpl.getBytecode(IBytecodeProviderImpl.java:47) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:112) at qunar.tc.decompiler.struct.lazy.LazyLoader.getClassStream(LazyLoader.java:118) at qunar.tc.decompiler.struct.lazy.LazyLoader.loadPool(LazyLoader.java:35) ... 19 more [16:40:14 [log-agent-exec-3] QTraceId[] INFO q.t.b.remoting.netty.TaskProcessor] - decompiler command finish, id [191224.164014.9.1.183.120.16434.80], command [DecompilerCommand{className='com.gf.test.checking.controller.impl.AccCheckPayToAntControllerImpl', classPath='file:/home/weblogic/deploy_dir/test-server-0.0.1-SNAPSHOT_deploy/20191219122403/test-server-0.0.1-SNAPSHOT/WEB-INF/lib/test-service-0.0.1-SNAPSHOT.jar!/com/gf/test/checking/controller/impl/AccCheckPayToAntControllerImpl.class'}]

xleiy commented 4 years ago

修改后的代码还是有文件找不到这个问题吗

gaofeng36599 commented 4 years ago

嗯是的,部分文件可以找到,部分文件找不到,提示“反编译失败”

xleiy commented 4 years ago

qq上说吧 1139987950

gaofeng36599 commented 4 years ago

通过更改文件:bistoury-master/bistoury-commands/src/main/java/qunar/tc/bistoury/commands/decompiler/DecompilerTask.java中decompile方法,添加 replace = replace.replace("zip:","jar:file:"); URL url = new URL(replace); 更改zip协议,问题解决,感谢