关于IDEA的debug阻塞模式的一个坑
-----------------------20180504更新-------------------------------------
今天用idea的maven compile时,发现虽然idea的设置已经将Java compile设置成1.8(我本机的jdk版本),且maven项目的project settings也是1.8,但一直是出现如下情况:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project xxx: Fatal error compiling: 无效的目标发行版:
解决办法,先确认idea的settings->Java compile和project structure->module->language level都为8,再确保父工程的pom.xml有以下代码:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> <verbose>true</verbose> <compilerArguments> <sourcepath>${project.basedir}/src/main/java</sourcepath> </compilerArguments> </configuration> </plugin>
注意,这里的${java.version}必须在properties里定义(或写死),否则它会一直找不到按默认的1.5去编译。
---------------------------------------------------------------------------------------------------------------------------
今天因为一个在idea工具下debug模式的阻塞问题,被坑了很久。
本地debug调试时,做远程调用时,在server端debug,一个探活线程因为debug的全局阻塞(All)也dead了,而探活机制由此会被认定为dead,造成client会和server又新建一个socket再去请求(我所做的项目的探活机制如此),造成重复调用,由此造成数据重复。(线上环境因为没有debug,是没有这个问题的)。注意这种情况跟一个服务耗时较长在规定时间得不到响应的情形不同(这种情况下探活机制并没有被认为是dead)~
后来发现是idea的锅,debug模式下,它默认的suspend是All的,需要修改成Thread:
上一篇: 04_MongoDB_查询文档
推荐阅读
-
一个关于JS正则匹配的踩坑记录
-
IE 报错 -- ‘SyntaxError:strict 模式下不允许一个属性有多个定义‘ ,基于vue element-ui页面跳转坑的解决
-
一个iOS开发者的Weex爬坑之路环境部署和Debug
-
关于idea中SpringBoot启动失败的坑
-
Python创建二维数组实例(关于list的一个小坑)
-
分享一个android debug模式,出现 waiting for debugger把界面卡住,取巧的解决办法
-
IDEA Maven项目使用debug模式运行Tomcat的详细教程
-
关于Inception默认配置的一个坑
-
关于华为FusionInsight Manager安全模式下执行spark任务的一个坑--记录
-
用IDEA 来写第一个Springboot程序以及欢乐的避坑指南