关于老项目切换到maven项目遇到的坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bactryki28/article/details/69681114

一、maven编译遇到的问题

1、antlr包丢失
需要以下组合依赖,版本也要对应上

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.1.1.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.2.0.Final</version>
</dependency>
<dependency>
    <groupId>antlr</groupId>
    <artifactId>antlr</artifactId>
    <version>2.7.7</version>
</dependency>

2、maven install 过程中文件夹权限问题
需要给相应的文件夹赋予读写权限

3、资源路径问题
资源文件统一移到src/main/resources,并且在web.xml中做相应的修改,例如:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

需要将资源文件的引用路径改了

3、包依赖问题
根据报错信息,缺什么包就补什么包,网上没有的,就从原来的lib中奖jar包导入maven仓库里,命令如下:

mvn install:install-file -Dfile=E:\.....\需要的jar包.jar -DgroupId=groupId要写 -DartifactId=artifactId要写 -Dversion=0.9.1 -Dpackaging=jar

4、java环境引用问题(用Eclipse)
根据自己机器的jdk做相应的修改。主要改以下三项(右击项目–>Propertis):
Java Build Path:修改要使用的jdk: 1.8.xxx
Java Compiler: 修改Compiler compliance level: 1.8
Project Facets:修改为1.8

5、org.w3c.dom.Document报错

The method setXmlVersion(String) is undefined for the type Document 

还会有很多别的Document方法找不到问题,产生的原因是我们实际需要调用的是 JDK 环境 rt.jar 下的 org.w3c.dom.org.w3c.dom.Document ,但事实上 Eclipse 等 IDE 工具此时自动为我们调用的是 J2EE 中的 xerces\xmlParserAPIs\2.6.2\xmlParserAPIs-2.6.2.jar ,这一点通过 Ctrl 左键点击 Document 类可以发现。
处理方法:
右击项目 > Properties > Java Build Path > 右边 Order and Export
把 JRE System Library 通过点击 Up 按钮放到 J2EE(Maven Dependencies) 的上面即可。

二、Spring3升级到Spring4

修改

<bean id="mappingJacksonHttpMessageConverter"
    class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
</bean>

为:

<bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>application/json</value>
            </list>
        </property>
    </bean>

更多参考:http://blog.csdn.net/yixiaoping/article/details/45281721

配置验证框架时需要以下包:

<dependency>  
    <groupId>javax.validation</groupId>  
    <artifactId>validation-api</artifactId>  
    <version>1.0.0.GA</version>  
</dependency>  

<dependency>  
   <groupId>org.hibernate</groupId>  
   <artifactId>hibernate-validator</artifactId>  
   <version>4.2.0.Final</version>  
</dependency>  

否则报错:

[ERROR][org.springframework.web.servlet.DispatcherServlet] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myvalidator' defined in class path resource [OrderSystem-servlet.xml]: Invocation of init method failed; nested exception is Java.lang.AbstractMethodError: org.hibernate.validator.engine.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider;
.....................

猜你喜欢

转载自blog.csdn.net/Bactryki28/article/details/69681114