SSM框架——常见问题及解决方案(1)

在SSM框架中,我遇到过的一些问题及其解决方法,以后如果还遇到问题会继续跟新。

SSM框架——常见问题及解决方案(2)

一、

问题描述

Could not open ServletContext resource [/WEB-INF/Dispatcher-servlet.xml]

解决方案

  • 注意< param-name>里的值必须是 contextConfigLocation
  • 添加< init-param>< /init-param>的内容(否则默认在/WEB-INF/下)
    在这里插入图片描述
    如图:resources文件为classpath
  <!-- SpringMVC的前端控制器,拦截所有请求 -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>
      org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <!--配置服务器启动后立即加载Spring MVC配置文件-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


二、

问题描述

Error:Cannot build artifact ‘ghostPlanner:war exploded’ because it is included into a circular dependency

解决方案

项目重命名之后有可能会出现这种问题,只要删除多余的Artifact即可。
在这里插入图片描述
在这里插入图片描述

三、

问题描述

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
在这里插入图片描述
解决方案

1、Mapper.xml和Mapper.java的名称是否一致,是否在同一个包下面
2、mapper.xml的namespace配置是否准确
3、mapper.java中的方法是否都存在于mapper.xml中
4、mapper.xml里< select>元素是否正确配置了ResultMap或ResultType (< select>元素详解
5、mapper的xml路径是否配置正确
6、target目录下是否有mapper对应的xml文件,如果没有,在pom文件中添加如下信息:

    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>

命名错误真的很要命,找半天都找不到哪里写错了,现在都是写了一个名称之后,全部复制粘贴,无论名字多短,真是怕了…


四、

问题描述

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisUtil': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.data.redis.core.StringRedisTemplate' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

在这里插入图片描述
解决方案
这个错误主要是两个原因:

  1. @Autowired 使用默认类型注入。把@Autowired 改成 @Resource
  2. applicationContext.xml 配置错误,使用了注解的类不在扫描的包中。
    保险一点的做法就是把所有包都扫描,但这样无疑会降低效率。
<context:component-scan base-package = "java.*"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章