zoukankan      html  css  js  c++  java
  • struts2整合spring出现的Unable to instantiate Action异常

      在struts2整合spring的时候,完全一步步按照官方文档上去做的,最后发现出现 Unable to instantiate Action,网上一搜发现很多人和我一样的问题,配置什么都没有错误,就是出现这个问题,其实这个原因很简单就是Spring容器没有启动,struts2容器到spring容器里面找Action的时候当然就找不到了。

      问题就出在web.xml配置的问题,按照struts2官方文档上面步骤,在web.xml里面配置加入以下代码:

    <!-- Context Configuration locations for Spring XML files -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
    </context-param>

      问题就出在这里。我们知道struts2整合spring的时候, spring配置文件会默认为  /WEB-INF/applicationContext.xml 。但时如果我们加上上面的配置,当启动Spring容器的时候,它就会去 【/WEB-INF/】或者【/WEB-INF/classes/及其子目录(也就是classpath*)】下面查找以名字以 applicationContext-(注意有一个[-]) 为开头的spring配置文件。但是我们一般习惯性的将spring的配置文件起名为 applicatinContext.xml,所以是永远也加载不了这个文件啦。或者是没有加上如上的配置但是我们把spring配置文件放在类加载路径下,也无法加载了。

    所以我们只要把【-】去掉就可以了

        <!-- Context Configuration locations for Spring XML files -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xml</param-value>
        </context-param>

      就一切正常啦。

  • 相关阅读:
    解决vs2017创建.net core失败以及不能登录问题
    ocx控件的坑
    Sqlserver 高并发和大数据存储方案
    远程连接ejabberd的mnesia数据库
    基于ejabberd实现各个客户端消息同步
    小诗一首《钗头凤·七夕夜》
    微软office web apps 服务器搭建之在线文档预览(二)
    微软office web apps 服务器搭建之在线文档预览(一)
    基于ejabberd简单实现xmpp群聊离线消息
    yiwoSDK2.0完整版
  • 原文地址:https://www.cnblogs.com/ArtsCrafts/p/struts2_spring.html
Copyright © 2011-2022 走看看