idea代码定位.java或.class文件跳转跟踪异常,定位不到method

近期碰到一个诡异的事,IDEA出现跟踪代码跳转定位不准确的情况,只能跳转到class开头,不能定位到具体方法method,需要返回再跟踪一次才可以定位到具体方法。

真的是太奔溃了。

后台启动idea,看到跳转的时候有如下报错日志:

at java.base/java.util.concurrent.ForkJoinWorkerIhread.run(ForkJoinWorkerIhread.java:183)
Caused by: org.jaxen.UnresolvableException: No Such Function matches
at org.jaxen.SimpleFunctionContext.getFunction(SimpleFunctionContext.java:127)
at org.jaxen.ContextSupport.getFunction(ContextSupport.java:242)
at org.jaxen.Context.getFunction(Context.java:216)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:176)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluateParams(DefaultFunctionCallExpr.java:195)
at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:179)
at org.jaxen.expr.DefaultPredicate.evaluate(DefaultPredicate.java:95)
at org.jaxen.expr.PredicateSet.applyPredicate(PredicateSet.java:269)
at org.jaxen.expr.PredicateSet.evaluatePredicates(PredicateSet.java:244)
at org.jaxen.expr.DefaultNameStep.evaluate(DefaultNameStep.java:215)
at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:140)
at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:677)
at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:216)
at net.sourceforge.pmd.lang.rule.xpath.JaxenXPathIRuleQuery.evaluate(JaxenXPathRuleQuery.java:69)... 61 more

 经过一番斗争。

我禁用了版本低的插件sonar之后,再试了一下,竟然就可以了。

回顾了下:

        应该是我idea版本升级之后,很多插件没升级,新版idea不支持。

        或许还有什么类冲突之类的,导致 代码跟踪功能异常。

解决方案:

如何发现不支持的插件并禁用?

到这个界面,如果有不兼容插件,

右下角会有个红色❗️,

点进去选择disable 并重启idea 应该就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个任务需要涉及到网络编程和HTTP协议的相关知识,下面是一个简单的Java代码实现: ``` import java.io.*; import java.net.*; import java.util.*; public class HttpServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); while (true) { Socket socket = serverSocket.accept(); InputStream input = socket.getInputStream(); OutputStream output = socket.getOutputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(input)); String line = reader.readLine(); String[] tokens = line.split(" "); String method = tokens[0]; String url = tokens[1]; if ("GET".equals(method) && "/".equals(url)) { String response = "HTTP/1.1 200 OK\r\n" + "Content-Type: text/html\r\n" + "Connection: close\r\n" + "\r\n" + "<html><body>Hello World!</body></html>"; output.write(response.getBytes()); } else if ("GET".equals(method) && "/short".equals(url)) { String response = "HTTP/1.1 302 Found\r\n" + "Location: /long\r\n" + "Connection: close\r\n" + "\r\n"; output.write(response.getBytes()); } else if ("GET".equals(method) && "/long".equals(url)) { String response = "HTTP/1.1 200 OK\r\n" + "Content-Type: text/html\r\n" + "Connection: close\r\n" + "\r\n" + "<html><body>This is a long URL.</body></html>"; output.write(response.getBytes()); } else { String response = "HTTP/1.1 404 Not Found\r\n" + "Content-Type: text/html\r\n" + "Connection: close\r\n" + "\r\n" + "<html><body>404 Not Found</body></html>"; output.write(response.getBytes()); } socket.close(); } } } ``` 上述代码实现了一个简单的HTTP服务器,监听8080端口,当用户访问根路径"/"时返回"Hello World!"页面,当用户访问"/short"时跳转到"/long"页面,当用户访问"/long"时返回"This is a long URL."页面。 此外,代码中设置了"Connection: close"响应头,使得长连接变为短链接,即每次请求完成后立即关闭连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值