遇坑记录

 

idea Maven Projects视图依赖报错

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

145840_JncV_2475326.png

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

解决办法:

重新导入一下pom.xml

150310_OPKd_2475326.png

 

 

 

Idea HighLighting Level

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

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

144639_ss2b_2475326.png

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

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

144821_5Tb8_2475326.png

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

145937_Rymy_2475326.png

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

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

 

 

Idea的F2(修改包名)

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

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

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

    重新mvn clean install,未果。

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

    重启机器,未果。

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

172155_mrjV_2475326.png

172324_9bos_2475326.png  

 

拦截器中读取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。如果编译器字符集和打开的文件字符集不一样,会出现乱码问题。

184328_gEGJ_2475326.png

 

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:

093130_iN4O_2475326.png

 

刚安装好的数据库,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

170711_hQef_2475326.png

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

 

 

 

 

SpringMVC的接口方式与请求方法之间的关系

SpringMVC的接口定于如下:

@RequestMapping("/updateEntInsuranceInfo.json")
public R updateInsuranceInfo(EnterpriseEntity enterprise, Integer gwyEntId) {}
  1. 如果使用GET请求,把参数都拼接到url后面,则spring可以成功绑定参数。
  2. 如果使用POST请求,并且是使用form表单,把参数传过来,则spring可以成功绑定参数。
  3. 如果使用POST请求,并且把参数转成jsonString放到requestBody中传参,则spring并不能成功进行参数绑定。

 

 

Redis序列化与反序列化

如果要把一个实体中的所有字段的数据都保存到redis,不要使用java的序列化,然后把二级制流保存到redis。反序列化可能出问题。比如类权限定名不一样,比如序列个的versionId不一样,都会导致反序列化失败。

应该把对象转成jsonString,然后把保存到redis中。这样不和类名强耦合。避免很多问题。

 

 

 

 

@EnableTransactionManagement

@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />


貌似不在启动类上使用这个注解,用@Transactional也可以正常rollback啊。
但加上这个注解之后,aop特性就变了:
1、先看启动类上不加@EnableTransactionManagement注解的情况:

ac02bd7aa4fc68530e11ac073e961051093.jpg

403688b0bac39e87d15056383b2d43a81c9.jpg

b5526520c1d4261548e6b62b22b3733b0e3.jpg


2、启动类上加上@EnableTransactionManagement注解:

317c7c2408bcb1e0c75b63486ec114158e2.jpg

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/anxiaole/blog/1624386

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值