这里记录了踩过的坑,推荐Ctrl+F报错信息
junit 单元测试报错
场景:引入junit-4.12.jar后,调用@Test时出错
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
>解决: 改引入低版本的就行了,比如引入junit4.10.jar
原因:貌似4.11以上版本不在包含hamcrest。详细参考下面文章,说的很详细了。
https://blog.csdn.net/u011954243/article/details/77962329
Nginx轮询失效
场景:明明设置了轮询策略,但浏览器还是只能访问同一个Tomcat
解决思路:F12
调出浏览器的调式页面,在Network的Tab页里,看一下请求信息。如果有favicon.ico
这个请求,下面的方法就可以解决问题。
解决:在Nginx配置文件中,server块中添加如下代码,之后nginx -s reload就好了
location /favicon.ico {
}
原因:貌似谷歌浏览器会把标签页的小图标也当作请求一起发送,favicon.ico
就是指的这个小图标
再详细的,就看一下这个文章吧
https://bbs.csdn.net/topics/393650853
String转Date出错
场景:明明时间格式都对上了,还是解析(format.parse)出错
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);
Date date = null;
date = format.parse(time);//time:String类型,内容是我们想转的字符串
>解决:除了时间格式要匹配外,后面的locale也指定一下,就会解析成功
原因:我记得好像有很多国家的时间格式,如果不能判断是哪个国家类型的时间,就会不能解析。(另外,本例为默认时间格式,方便不想研究时间格式的小伙伴们)
场景:使用New date(String)转换时间时,时间的判断逻辑出错
Date date = new Date(time);//time:String类型,内容是我们想转的字符串
解决:利用format.parse(time)来转换时间
原因:根据我debug的结果,发现new Date(time)不能正确转换时间,所以会导致正确的逻辑判断也会出错。