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问题)的原因及解决方法
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:*****
错产生经过:链接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!