maven学习日记(三)-------开发环境搭建(springmvc+hibernate4)各种maven错误汇总

时间:2023-03-08 15:55:39
maven学习日记(三)-------开发环境搭建(springmvc+hibernate4)各种maven错误汇总

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的索引还真够乱的。