遇坑记录

 

idea Maven Projects视图依赖报错

    idea Maven Projects视图依赖报错,但是在本地maven库中是有对应的jar的。如图:

    (上图:可以看到左边本地maven仓库有base-api.2.0.0.jar,但是右边依赖却报错)

解决办法:

重新导入一下pom.xml

Idea HighLighting Level

    今天启动tomcat,发现LoginUserController类下的,所有的请求都404。于是猜测是不是controller没有扫描到,于是检查spring-mvc.xml。发现,base-package写的没问题。ctrl+左 还能点进去呢。所以不是这里的问题。

    tomcat启动的时候,查看日志,有所有的请求路径:

(上图:base-package写的没有错 & tomcat日志中扫描到的url)

    发现只有LoginUserController类下的url都没有扫描到,而同一个包下的UserController类的url扫描到了。说明了,是LoginUserController类有问题。于是,打开LoginUserController类,仔细查看。没有发现问题。于是,不知道为啥,我点了一下右下角的HighLighting Level,把等级调成了Inspections,于是,发现LoginUserController报错了。包名报错了。mvn install不报错,tomcat启动也不报错。修改了一下HighLighting Level,包名报错了。wtf

(上图:选第二项,错误不提示)

(上图:选第三项,错误提示)

    其实,我觉得这里应该是可以设置的。又哪位大佬会设置,选择第二项的时候也能提示包错误,有大佬会设置的话,麻烦留言告诉小弟一声。谢谢

Idea的F2(修改包名)

    从另一个项目中复制过来的包和类,想要使用F2快捷键(我自己设置为修改Rename..功能)修改一下包名。

    改完之后,启动tomcat,访问http://localhost:8080/index报404。

    查看tomcat的启动日志,发现spring很多相关的日志都没有打印,以为是使用jdk版本不一致,于是都换成jdk7。启动,未果。

    重新mvn clean install,未果。

    网上查询说是tomcat的安装路径有空格。尝试之后,未果。

    重启机器,未果。

    最后不知道为啥,像看看SpringMVC的配置文件是不是被删了,于是点开spring/spring-mvc.xml,发现:

  

 

拦截器中读取request中的流后,controller 无法获取到数据

原因:ServletRequest中getReader()和getInputStream()只能调用一次

在Interceptor中调用之后,SpringMVC在参数绑定阶段,就获取不到参数,从而报错:400 Bad Request

一般我们会在InterceptorAdapter拦截器中对请求的token进行验证

如果是content-type 是 application/x-www-form-urlencoded  则没有什么问题

如果我们的接口是用@RequestBody来接受数据,那么我们在拦截器中验证token时

需要读取request的输入流  ,因为 ServletRequest中getReader()和getInputStream()只能调用一次

这样就会导致controller 无法拿到数据。  

拦截器中读取request中的流后,controller 无法获取到数据解决方案

解决filter拦截request中body内容后,字符流关闭,无法传到controller的问题

encoding

从git、svn、或者新导入一个项目时,最好在设置中把encoding全部改成UTF-8。如果编译器字符集和打开的文件字符集不一样,会出现乱码问题。

utf-8 bom

有些文件用编译器、或者win自带的notpad打开后,字符集会变成utf-8 bom。如果xml文件被改成了utf-8 bom,启动的时候会报错。

链接:

读取文本出现 锘 * 系列乱码错误(UTF-8 BOM问题)的原因及解决方法

关于UTF8文件带BOM头可能会引起的错误解析

IntelliJ IDEA :Error:(1, 1) java: 非法字符: '\ufeff'

不用通讯工具发代码

    今天(2018.2.26)项目上线,生产环境出现问题,但是测试环境、本地正常。事情经过:

生产环境的配置文件一开始是:

# 邀请客户-url
share.invite.customer.url=待å®

然后同事把这个url用通讯工具发给我,我用editplus替换了配置:

# 邀请客户-url
share.invite.customer.url=https://{这里域名省略}/user/register/h5Register?InvitationCode=

最后用linux命令vim发现配置文件后面多了一个<9a>(注:这个<9a>在editplus中是看不到的,所以会出现错误)

# 邀请客户-url
share.invite.customer.url=https://{这里域名省略}/user/register/h5Register?InvitationCode=<9a>

由此导致的bug:

刚安装好的数据库,root登录不上去

系统:win10

安装包:mysql-installer-community-5.7.17.0.msi

安装完成使用以下配置登录:

ip:localhost

port:3306

user:root

pwd:*****

报错:SQL Error (2013): Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0

错产生经过:链接MySQL时出现

解决办法:打开my.ini,找到[mysqld]项,在其后加入一句:skip-name-resolve,保存,重启mysql服务即可~

说明:skip-name-resolve它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。

https://www.cnblogs.com/kevingrace/p/6196885.html

eclipse svn插件异常

    有时候eclipse非正常关闭,会导致eclipse 的svn插件异常:

Could not create the view: org.tigris.subversion.subclipse.ui.repository.RepositoriesView

    解决办法:找到{eclipse_home}\configuration文件夹里的org.eclipse.update文件夹,删掉,重启eclipse。Successful!

猜你喜欢

转载自my.oschina.net/anxiaole/blog/1624386