1、maven編碼 gbk 的不可映射字符
解決這個問題的思路: 在maven的編譯插件中聲明正確的字符集編碼編碼——編譯使用的字符集編碼與代碼文件使用的字符集編碼一致!!
安裝系統之后,一般中文系統默認字符集是GBK。我們安裝的軟件一般都繼承使用操作系統的默認字符集。
所以在很多中文XP win7上開發的同學,在使用maven(mvn compile)編譯項目的時候,就會出現“編碼 gbk 的不可映射字符”: 這個是由於代碼使用的UTF-8,而maven編譯的時候使用的GBK的緣故。 通過修改pom文件,可以告訴maven這個項目使用UTF-8來編譯。在pom的/project/build/plugins/下的編譯插件聲明 中加入下面的配置:(最好在parent 中配置)
<build> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>utf8</encoding> </configuration> </plugin> </plugins> </pluginManagement> </build>
2、NoSuchMethodError: org.codehaus.jackson.type.JavaType.<init>(Ljava/lang/Clas
這種問題屬於jar包沖突:jackson-mapper-asl-1.9.*.jar如spring自帶的jar包com.springsource.org.codehaus.jackson.mapper-1.4.2.jar沖突,從而在項目初始中拋出上述異常。解決方法是將com.springsource.org.codehaus.jackson.mapper-1.4.2.jar移除。
spring MVC在使用jackson時一定要注意:jackson-core-asl-1.9.*.jar和jackson-mapper-asl-1.9.*.jar的版本號一定要相同,如:同時使用1.9.10。
3、java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
缺少fileupload包
4、 ClassNotFoundException: org.hibernate.cache.TimestampsRegion
后來找到原因, net.sf.ehcache.hibernate.EhCacheRegionFactory 不支持hibernate4
hibernate4支持ehcache的話,需要引入
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.1.2.Final</version>
</dependency>
5、NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
使用Eclipse中的Maven插件m2eclipse時,在加入依賴時利用索引查找JSTL列出兩個選擇:
- javax.servlet - jstl
- jstl - jstl
如果你選擇的了jstl - jstl 其中的jar會發現沒有JSTL 1.2的版本,再選擇了其它的版本后,m2eclipse下載包文件會出錯,必須選擇javax.servlet - jstl條目下的包文件才能正確下載包。Maven的索引還真夠亂的。