Java开发者千千万,开发者用的开发工具目前主流却只有2种:eclipse和IDEA,我入行以来一直用的eclipse,听过IDEA很好很强大,但是也只是处于听说的阶段,
基本没用过,自然没怎么体会过。直到今天,我解决了一个实际问题(注意,这不是一篇安利IDEA的文章,而是介绍一个实际问题解决的过程)。

缘起

公司的项目都是微服务的,前后端完全分离(只是代码分离,但是开发人员目前不分离),我负责其中2个核心工程,其中一个是刚接手的,就是它让我遇到了一个问题。
一般我开发的时候都是先在本地将前后端调试通过后再提交代码到git上,但是这个工程不知道为什么通过jetty:run 启动后总是不能正常访问,通过postman也不行,一直返回503

山重水复疑无路

这个问题,我到网上查了好久,很多人都说是后端服务问题,服务没起来,我也这样怀疑过,但是从console打印的log来看是正常的,把整个console从底往上翻都没有发现报错的堆栈信息,但是把代码发到环境上就是ok的,看来还是本地的问题,但没有报错,一时半会儿也查不出来问题在哪儿。

没办法,只能把后端代码写好后,肉眼调试看看有没有问题,没发现问题的话就把代码发到测试环境上,然后用postman或本地的前段代码访问测试环境的接口。

这样做的缺点很明显,就是如果有问题的话,要重新提交代码然后重新发布环境,比较麻烦,只能临时这么干,不是长久之计。

柳暗花明又一村

记得第一次提交这个工程的代码的时候,eclipse特有的.project等文件都是之前没有加入到ignore列表的。

基于这个,我猜想原来的开发人员会不会用的是IDEA?他之前是怎么调试的?难道没报错吗?为了寻找答案,我把下载了很久但是没怎么用过的IDEA翻了出来,导入工程并启动该工程。发现报错了!!!它报错了!!!太好了,报错了,终于找到503的问题点了。

对症下药,药到病除
根据报错,很显然是配置文件中少了一个配置项目,导致报错,使本地服务没有完全启动,因此报503错误。于是我翻了下环境上的配置,copy到本地,再启动,然后访问,正常响应,问题解决。

完美!!!

打破砂锅问到底
没道理啊!按说eclipse启动错误应该会有堆栈信息的,为什么我再console里面看不到呢?
度娘一把,最后得出结论堆栈被其他的信息冲掉了,因为eclipse默认情况下console显示的日志行数有限制。

要解决问题只需把这个限制取消就行了。
于是乎,我把它取消掉然后把那个配置再删掉,重新启动eclipse,在长长的日志里面我发现了堆栈信息。

没错,就是它,那个我找了很久都没有找到的它。
众里寻他千百度,蓦然回首,“堆栈”却在灯火阑珊处!!!

收官
从这个问题来看,IDEA确实比eclipse更懂程序员,IDEA把报错直接报在了启动结束的位置,而eclipse却在报错之后又执行了很久并且打印了很多log信息,在一定程度上影响了我排查问题。
当然,并不是说IDEA就一定比eclipse好,我也用了很多年的eclipse了,挺好的。总体上,各有千秋吧。
以上是我的个人观点,eclipse铁杆粉们,求放过哦

终于,我感受到了IDEA的强大的更多相关文章

  1. Python实现字符的冒泡排序——说实话,两个数兑换的方法震惊了我,一天比一天感受到了Python的强大

    import random M= lettList=[] for i in range(M): lettList.append(chr(random.randrange(,))) for lett i ...

  2. 作业3-个人项目<词频统计>

    上了一天的课,现在终于可以静下来更新我的博客了.       越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”.                词频统计 单词: 包含有4个或4个以上的字 ...

  3. css befroe after 尾类技术器

    CSS counter计数器(content目录序号自动递增)详解 这篇文章发布于 2014年08月26日,星期二,15:54,归类于 css相关. 阅读 44148 次, 今日 11 次 by zh ...

  4. Alpha 冲刺 (6/10

    Alpha 冲刺 (6/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.组织会议 2.帮助队员解决 ...

  5. CSS计数器(序列数字字符自动递增)详解———张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4303 一.挖坟不可耻 ...

  6. 福大软工1816:Alpha(6/10)

    Alpha 冲刺 (6/10) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务: 文字/口头描述: 1.组织会议 2.帮助队员解决 ...

  7. 安全测试===sqlmap(肆)转载

    十八.杂项 1.使用简写 参数:-z 有些参数组合是被经常用到的,如“--batch --random-agent --ignore-proxy --technique=BEU”,这样写一大串很不好看 ...

  8. 某科学的PID算法学习笔记

    最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...

  9. sqlmap中文手册

    Sqlmap中文手册  -Darren制作 零.前言 Sqlmap是十分著名的.自动化的SQL注入工具.为了较为系统地学习Sqlmap,我决定翻译一遍Sqlmap的用户手册,于是便有了此文.由于我英语 ...

随机推荐

  1. c++中利用宏定义简化for循环使用

    话不多说,上方法 #define _for(i,a,b) for( int i=(a); i<(b); ++i) #define _rep(i,a,b) for( int i=(a); i< ...

  2. canvas制作表单验证码

    canvas是个非常强大的组件,网页上的验证码一般都是用服务器语言制作出来的 canvas同样是可以实现这个功能的 下面请观看效果图: 步骤呢其实也很简单 HTML部分: <form actio ...

  3. c语言进阶13-线性表之顺序表

    一. ACM算法:顺序表的查找 顺序表的查找指获取顺序表的第i个元素.对于线性表的顺序存储结构来说,如果我们要实现获取元素的操作(GetElem),即将线性表L中的第i个位置元素值返回.就程序而言,只 ...

  4. [leetcode] 87. Scramble String (Hard)

    题意: 判断两个字符串是否互为Scramble字符串,而互为Scramble字符串的定义: 字符串看作是父节点,从字符串某一处切开,生成的两个子串分别是父串的左右子树,再对切开生成的两个子串继续切开, ...

  5. python 之 并发编程(线程理论,开启线程的两种方式,进程与线程的区别,线程对象的其他方法)

    9.9 线程理论 1.什么是线程 线程指的是一条流水线的工作过程 进程根本就不是一个执行单位,进程其实是一个资源单位,一个进程内自带一个线程,线程才是执行单位 2.进程VS线程 同一进程内的线程们共享 ...

  6. C#程序从Excel表格中读取数据并进行处理

    今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...

  7. PHP与ECMAScript_5_常用数组相关函数

    PHP ECMAScript 长度 $length = count($array) length = array.length       增 array_unshift($array, new1,n ...

  8. [解决方案]IIS配置后报错404,500,502等系列问题

    很多时候刚部署完服务器的IIS以后,第一次部署站点都会出现形形色色,各种各样的报错问题,但这些问题大同小异,我这里就给大家提供的解决的方案,以达到以不变应万变的效果 目的:让大家学会处理类似问题的方法 ...

  9. 使用钉钉对接禅道的bug系统,实现禅道提的bug实时在钉钉提醒并艾特对应的开发人员处理

    现在公司测试中有一个痛点是每次测试人员提完bug后,需要定期去提醒开发人员查看禅道的bug记录及修复bug. 导致测试人员在项目测试中不仅要测试整个软件,还要负起实时监督提醒功能的“保姆角色”,身心疲 ...

  10. 【MySQL】Unknown column 'column_name' in 'field list'

    使用 INSERT INTO - SELECT FROM - ON DUPLICATE KEY UPDATE 时遇到了这个问题,百思不得其解