大家好,又见面了,我是全栈君。
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铁杆粉们,求放过哦
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120883.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...