关于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:



 



 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值