亂碼
在部署某產(chǎn)品的時(shí)候, 出現(xiàn)了詭異的編碼錯(cuò)誤,主要體現(xiàn)為:
- 登陸提交的表單會(huì)自動(dòng)加一串奇奇怪怪的亂碼
- Constant變量中的中文在當(dāng)成message放在json中也會(huì)出現(xiàn)亂碼
一開(kāi)始我以為是Linux的Locale環(huán)境變量引起的,但是改之依然沒(méi)有效果,而從上面的那個(gè)第二條大致可以
猜出是文件編譯的時(shí)候把encoding搞亂了冶匹。因?yàn)锧FanFan童鞋用直接eclipse的export導(dǎo)出的war是可用的,那就是說(shuō)打包的時(shí)候錯(cuò)誤了过椎。
最后的解決方法是: ** pom.xml配置編碼方式 **
先配置:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
然后再配置 maven-compiler-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
mybatis代理失效
這個(gè)問(wèn)題找的比較快,因?yàn)閙ybatis是通過(guò)動(dòng)態(tài)代理模式來(lái)實(shí)現(xiàn)DAO接口的, 一看到CGLib失敗就知道接口的代理出現(xiàn)了問(wèn)題。
果不其然捐迫,在編譯的結(jié)果里沒(méi)有找到mybatis的xml登刺。
好吧籽腕,項(xiàng)目的先人把XML放到了 src/main/java
下, 而默認(rèn)會(huì)忽略掉這個(gè)文件夾下的配置文件的。而且先人還是通過(guò)eclipse->export導(dǎo)出war包的纸俭,所以就沒(méi)有發(fā)現(xiàn)這個(gè)問(wèn)題皇耗。
解決方法:
- 比較暴力的方法是把xml,properties 都放到
src/main/resources
下 - 本著較少改動(dòng)的原則,給pom.xml添加如下配置
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
注意,如果不加<includes>
會(huì)把java文件也打進(jìn)package。揍很。orz
其他
配xml不能隨便郎楼,不能隨便
THE END