解决方案 »

  1.   

    你把初始化servlet去掉就没问题了吗?
    如果是这样的话,应该是你的那个servlet配置错误,也被struts2的核心控制器拦截了。
    首先你的这个servlet要配在struts的核心控制器前面,并且设置为服务器启动时加载~注意不能配映射~举个栗子: <servlet>
      <servlet-name>InitServlet</servlet-name>
      <servlet-class>com.xxx.xxx.servlet.InitServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
      </servlet>这样就OK了,然后你在这个servlet的init方法中写你操作数据库的代码就行了,一般是存在application中。
      

  2.   

    你自己都说了在项目都没完全启动就调用Servlet,servlet里面肯定是用spring管理的类所以变成了null。所以楼主要在spring启动初始化完成后做。要在spring启动完成后做其实只要自己写个Listener继承org.springframework.web.context.ContextLoaderListener,把web.xml的spring启动改成你写的,只要重写
    public void contextInitialized(ServletContextEvent event){
        super.contextInitialized(event);//调用父类的即spring原生的listener初始化spring
       //这后面就可以做你自己的业务了
    }