Spring+SpringMVC+Mybatis整合,你可能遇到的问题

1、安利工具

mybatis提供的工具generator,能够去官网下载html

 

2、你可能会遇到的问题

一、将webapp改成3.0的版本java

原文件:mysql

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>web

改成:spring

<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="3.0"  
    xmlns="http://java.sun.com/xml/ns/javaee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
  <display-name>Archetype Created Web Application</display-name>
</web-app>sql

并修改org.eclipse.wst.common.project.facet.core.xmlexpress

<installed facet="jst.web" version="2.3"/>   改成  <installed facet="jst.web" version="3.0"/>apache

 

二、spring-core包中不包括spring-context,设置pom.xml的时候须要都引入,不然会找不到context下相应的类json

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>mybatis

 刚开始只引入了spring-core包,maven没有自动下载spring-beans,spring-aop,spring-experssion包,引入context后会自动下载其余三个jar包。

 

三、导入了mybatis-spring包后依然报java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean错误

缘由:maven配置中,能够换个版本的mybatis-spring包

 

四、java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport 错误

缘由:缺乏spring-tx包 

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>

 

五、java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy;

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency> 

 

六、org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zd.dao.UserMapper.selectByPrimaryKey

一篇怪异的帖子回答:http://www.360doc.com/content/14/0424/09/15113968_371624182.shtml

最后一种回答解决了问题。。。。(我表示很诧异)

 

七、maven项目报错,可是看不到报错文件

打开窗口Markers,在工具栏处Window->Show View->Markers

能够看到如下错误信息:

Description    Resource    Path    Location    Type One or more constraints have not been satisfied.    ReBanana        line 1    Maven Java EE Configuration Problem

解决办法:在pom.xml配置文件中加入以下语句:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>

以后再右键->Maven->Update Project,红叉消失。

 

八、没有SpringJUnit4ClassRunner类

没有引入spring-test包

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>

 

九、RequestMapping cannot be resolved to a type

缺乏spring-webmvc包

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>

 

十、Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter]

缘由:类名写错了,新版本类名为MappingJackson2HttpMessageConverter

 

十一、Cannot resolve com.mysq.jdbc.Connection.ping method.  Will use 'SELECT 1' instead. java.lang.NullPointerException

缘由:mysql-connector-java版本问题,原来版本为6.0.3改成5.1.39后,没有异常了

 

十二、Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'userService' is defined

缘由:在web.xml必定要加上启动spring的监听器,这样配置在xml文件中的bean才会初始化 

    <listener>  
        <listener-class>  
            org.springframework.web.context.ContextLoaderListener  
        </listener-class>  
    </listener> 

 

1三、CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.5.1 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-compiler-plugin:jar:3.5.1

maven-compiler-plugin版本过高,jar包没下载下来,换个低版本的3.0

以下:

 

1四、Servlet /ReBanana threw load() exception
java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException

maven配置文件添加一下配置:

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.1</version>
        </dependency>

 

1五、打包文件发给他人时,需在当前目录cmd中执行mvn clean命令,删除maven项目产生的target文件。若maven正确安装完成(可经过maven -version查看版本信息),显示mvn不是内部命令。

在设置环境变量path的时候,可能覆盖了原先设置着的变量,只要在path后面将

;%maven_home%\bin  ---->     ;%SystemRoot%\system32;%maven_home%\bin 

 

1六、在上一问题后,若是再次运行run as--->maven install则会build failure

出现一下相似错误 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'roleService': Unsatisfied dependency expressed through method 'setRoleMapper' parameter 0: Error creating bean with name 'roleMapper' defined in file

先run as--->maven install,下载相应jar包,而后点击工具类的project---->clean----->clean project  selected below----->选择本身项目后OK,再次run as--->maven install则不会出现该错误。(前提是你以前测试的时候是彻底正确的)

 

若是遇到其余的问题以后再补充。

如有错误,望纠正。

相关文章
相关标签/搜索