【问题标题】:Unable to Autowire ServiceImpl Class Bean with Service Class Object无法使用服务类对象自动装配 ServiceImpl 类 Bean
【发布时间】:2015-11-13 09:58:57
【问题描述】:

我遇到的错误如下:

    root cause

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginAndSignUpController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.frosters.firststep.service.LoginAndSignUpService com.frosters.firststep.controller.LoginAndSignUpController.loginAndSignUpService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.frosters.firststep.service.LoginAndSignUpService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.frosters.firststep.service.LoginAndSignUpService com.frosters.firststep.controller.LoginAndSignUpController.loginAndSignUpService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.frosters.firststep.service.LoginAndSignUpService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:571)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.frosters.firststep.service.LoginAndSignUpService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1072)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:967)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:543)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:305)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:301)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:834)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:667)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:633)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:681)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:552)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:493)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

我尝试通过使用@Component、@Service 注释来解决它,并尝试按照其他 StackOverflow 链接中的说明在 XML 配置中定义 bean,但我遇到了同样的错误。可能是我没有做对,或者我做错了什么。

ControllerClass如下:

package com.frosters.firststep.controller;

@RequestMapping(value="/login.html")
@Controller
public class LoginAndSignUpController {

    @Autowired
    private LoginAndSignUpService loginAndSignUpService;

    @ModelAttribute("userVO")
    public UserVO createUserVOBean(){
        return new UserVO();
    }

    @RequestMapping(method=RequestMethod.GET)
    public ModelAndView getLoginForm(){
        System.out.println("inside getLoginForm() method");
        return new ModelAndView("Login");
    }

    @RequestMapping(method=RequestMethod.POST)
    public ModelAndView verifyLogin(@ModelAttribute("userVO")UserVO userVO){
        System.out.println("inside verifyLogin");
        boolean result = loginAndSignUpService.verifyUser(userVO);
        ModelAndView model;
        if(!result){
            model = new ModelAndView("Login");
            model.addObject("loginError", "invalid username/password");
        }
        else
            model = new ModelAndView("LoginSuccess"); //temporary view
        return model;
    }

}

ServiceImplClass如下:

package com.frosters.firststep.serviceimpl;

public class LoginAndSignUpServiceImpl implements LoginAndSignUpService{

    @Autowired
    private LoginAndSignUpDAO loginAndSignUpDAO;

    public boolean verifyUser(UserVO userVO) {
        boolean result = loginAndSignUpDAO.validateUser(userVO);
        if(result)
            return true;
        else
            return false;
    }

}

DAOImpl 类如下:

package com.frosters.firststep.daoimpl;

public class LoginAndSignUpDAOImpl extends NamedParameterJdbcDaoSupport implements LoginAndSignUpDAO{

    public boolean validateUser(UserVO userVO) {
        String userName = userVO.getUserName();
        String password = userVO.getPassword();
        SqlParameterSource paramSource = new MapSqlParameterSource("username", userName);
        try{
        String pass = this.getNamedParameterJdbcTemplate().queryForObject(FSUtils.LOGIN_INFO, paramSource, String.class);
        if(pass != null && !pass.isEmpty()){
            if(pass.equals(password))
                return true;
            else
                return false;
        }
        else
            return false;
    }catch(EmptyResultDataAccessException ex){
        return false;
        }
    }


    }

web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" 
    version="3.0">

  <display-name>Login And SignUp</display-name>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
  </context-param>

    <servlet>
        <servlet-name>spring-dispatcher-servlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/classes/spring-dispatcher-servlet.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-dispatcher-servlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

spring-dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

        <context:component-scan base-package="com.frosters.firststep" />
        <mvc:annotation-driven />

        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views/" />
            <property name="suffix" value=".jsp" />
        </bean>
</beans>

applicationContext.xml 我在其中定义了 bean:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd
        http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.2.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

        <context:property-placeholder location="classpath:DbUtil.properties"/>

        <!-- <context:component-scan base-package="com.frosters.firststep" />
        <mvc:annotation-driven /> -->

        <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${jdbc.mysql.driverClassName}" />
            <property name="url" value="${jdbc.mysql.url}" />
            <property name="username" value="${jdbc.mysql.username}" />
            <property name="password" value="${jdbc.mysql.password}" />
        </bean>

        <bean id="loginAndSignUpDAO" class="com.frosters.firststep.daoimpl.LoginAndSignUpDAOImpl">
            <property name="dataSource" ref="dataSource" />
        </bean>

        <bean id="loginAndSignUpService" class="com.frosters.firststep.serviceimpl.LoginAndSignUpServiceImpl" />

</beans>

我也尝试在 spring-dispatcher-servlet.xml 中定义所有 bean,但这样做也不能解决问题。

谁能帮我看看哪里错了? ....谢谢...

【问题讨论】:

    标签: java xml spring spring-mvc javabeans


    【解决方案1】:

    在您的 web.xml 中添加 ContextCLoaderListener

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

    【讨论】:

    • @Imran ..谢谢,但在我的 web.xml 中添加了这个之后,它正在分解更多.. 在重新部署战争期间,我遇到了更多异常,例如:上下文初始化期间遇到的异常 - 取消刷新尝试org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/classes/applicationContext.xml] 中创建名称为“dataSource”的 bean 时出错:设置属性值时出错;嵌套异常是 org.springframework.beans.PropertyBatchUpdateException;嵌套的 PropertyAccessExceptions (1) 是:它现在无法创建任何 bean。
    • 你能发布完整的堆栈跟踪吗?还有一件事..我无法在 *DaoImpl 中找到 DataSource 属性。我认为这是错误。
    • 是的,那是因为我使用了 Spring DAO Support 并扩展了名为“NamedParameterJdbcDaoSupport”的超类(由 Spring 提供,并且在扩展此类之后,您不必定义 namedParameterJdbcTemplate 并在它通过自动装配。)和数据源可以通过 bean 提供,因为我在 ApplicationContext.xml 中提供了它。参考:link
    • 完整的堆栈跟踪超过了字符限制.. 所以我把它保存在 github.. 你可以在这里查看这些完整的堆栈跟踪:[github.com/guptaakashdeep/reflections/blob/master/StackTrace
    • 异常是因为无法加载驱动。在属性文件中放置“com.mysql.jdbc.Driver”而不是“com.mysql.jdbc.driver”。大写 D :)
    【解决方案2】:

    行:

    <context:component-scan base-package="com.frosters.firststep" />
    

    应该在 applicationContext.xml 中,而不是在 spring-dispatcher-servlet.xml 中。

    【讨论】:

      【解决方案3】:

      Spring 组件扫描,将扫描您的基础包中所有带有注释的 bean

      • @Repository(用于 DAO)
      • @组件
      • @Service(用于服务)
      • @Controller(用于控制器)

      由于 Spring 没有找到 DAOImpl 和 ServiceImpl 的任何注释,因此它不会初始化它们,因为你的 @Autowired 不起作用,因为没有合格的候选人。

      所以将@Repository 添加到您的DaoImpl 并将@Service 添加到您的ServiceImpl 类,然后重试。

      package com.frosters.firststep.serviceimpl;
      
      @Service
      public class LoginAndSignUpServiceImpl implements LoginAndSignUpService{
      
          @Autowired
          private LoginAndSignUpDAO loginAndSignUpDAO;
      
          public boolean verifyUser(UserVO userVO) {
              boolean result = loginAndSignUpDAO.validateUser(userVO);
              if(result)
                  return true;
              else
                  return false;
          }
      
      }
      

      package com.frosters.firststep.daoimpl;
      
      @Repository
      public class LoginAndSignUpDAOImpl extends NamedParameterJdbcDaoSupport implements LoginAndSignUpDAO{
      
          public boolean validateUser(UserVO userVO) {
              String userName = userVO.getUserName();
              String password = userVO.getPassword();
              SqlParameterSource paramSource = new MapSqlParameterSource("username", userName);
              try{
              String pass = this.getNamedParameterJdbcTemplate().queryForObject(FSUtils.LOGIN_INFO, paramSource, String.class);
              if(pass != null && !pass.isEmpty()){
                  if(pass.equals(password))
                      return true;
                  else
                      return false;
              }
              else
                  return false;
          }catch(EmptyResultDataAccessException ex){
              return false;
              }
          }
      
      
         }
      

      试试下面的顺序

      <mvc:annotation-driven />
      <context:annotation-config />
      <context:component-scan base-package="com.frosters.firststep" /> 
      

      <mvc:annotation-driven />
      <context:annotation-config />
      <context:component-scan base-package="com.frosters.*" />
      

      正如 Imran 在他的帖子中指出的(这可能是主要原因),将上下文侦听器放入您的 web.xml

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

      【讨论】:

      • @Raf...感谢您的建议,但我之前尝试过,但遇到了同样的错误,截至目前,我正在 applicationContext.xml中定义 bean >.
      • 我有时会在 Spring 上做噩梦,而且自动装配并不好玩。我们使用的是 Spring 和 Hibernate。无论如何,很久以前我为一个 uni 项目写了一个 spring 项目,看看那里的配置对你的情况有帮助吗github.com/rhamedy/SRPS/tree/master/src/main/webapp/WEB-INF
      • 我也试过这个,但是一旦我在我的 web.xml 中定义了监听器,它在重新部署时会抛出错误,因为它无法为 dataSource 设置属性:创建名称为 bean 时出错ServletContext 资源 [/WEB-INF/classes/applicationContext.xml] 中定义的 dataSource':设置属性值时出错;嵌套异常是 org.springframework.beans.PropertyBatchUpdateException 属性“driverClassName”抛出异常;嵌套异常是 java.lang.IllegalStateException: 无法加载 JDBC 驱动程序类 [com.mysql.jdbc.driver]
      • 知道为什么在定义监听器后无法从属性文件中获取属性吗?
      • 如果你的 spring 配置中有很多错误,一个会抛出异常并且编译终止。一旦您修复了该错误,编译器就会继续检查其他错误,这就是为什么当您在 web.xml 中包含侦听器时会出现其他错误,这并不意味着侦听器导致了它。您的配置与我的不同(如 github 链接中所示),因此复制对您没有帮助,但请查看那里的配置组织结构。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2020-03-24
      • 2018-06-09
      • 2017-04-26
      • 2014-03-11
      相关资源
      最近更新 更多