2017-02-04 10 views
0

私はユーザーのログインページをクレートしようとしていますが、実行するとこのエラーが発生します。 例外spring:autowire beanなし

タイプ例外レポート

メッセージサーブレット投げたSpringDispatcherサーブレット用のServlet.init() -

HTTPステータス500: これは私が私のブラウワーでそれを起動したときに、私が得るメッセージです。サーブレットのinit()が例外を投げました

説明サーバーが内部エラーで、 がこの要求を実行できませんでした。

スタックトレースエラーメッセージ:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)`enter code here` 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) 
     ... 31 more 

    Feb 04, 2017 7:04:38 AM org.apache.catalina.core.StandardContext loadOnStartup 
    SEVERE: Servlet [SpringDispatcher] in web application [/mscproject] threw load() exception 
    org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) 
     at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 
     at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 
     at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 
     at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:158) 
     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1183) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:989) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4903) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 

    Feb 04, 2017 7:04:38 AM org.apache.coyote.AbstractProtocol start 
    INFO: Starting ProtocolHandler [http-nio-8080] 
    Feb 04, 2017 7:04:38 AM org.apache.coyote.AbstractProtocol start 
    INFO: Starting ProtocolHandler [ajp-nio-8009] 
    Feb 04, 2017 7:04:38 AM org.apache.catalina.startup.Catalina start 
    INFO: Server startup in 16072 ms 
    Feb 04, 2017 7:04:40 AM org.apache.catalina.core.ApplicationContext log 
    INFO: Initializing Spring FrameworkServlet 'SpringDispatcher' 
    Feb 04, 2017 7:04:40 AM org.springframework.web.servlet.DispatcherServlet initServletBean 
    INFO: FrameworkServlet 'SpringDispatcher': initialization started 
    Feb 04, 2017 7:04:40 AM org.springframework.web.context.support.AnnotationConfigWebApplicationContext prepareRefresh 
    INFO: Refreshing WebApplicationContext for namespace 'SpringDispatcher-servlet': startup date [Sat Feb 04 07:04:40 GMT 2017]; parent: Root WebApplicationContext 
    Feb 04, 2017 7:04:40 AM org.springframework.web.context.support.AnnotationConfigWebApplicationContext loadBeanDefinitions 
    INFO: Found 5 annotated classes in package [project.mscproject] 
    Feb 04, 2017 7:04:41 AM org.springframework.web.context.support.AnnotationConfigWebApplicationContext refresh 
    WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDaoImpl': Unsatisfied dependency expressed through field 'session'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
    Feb 04, 2017 7:04:41 AM org.springframework.web.servlet.DispatcherServlet initServletBean 
    SEVERE: Context initialization failed 
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDaoImpl': Unsatisfied dependency expressed through field 'session'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) 
     at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634) 
     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682) 
     at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553) 
     at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494) 
     at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:158) 
     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1183) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) 
     at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:779) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) 
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:495) 
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:767) 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1347) 
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 

pom.xmlファイル:

<?xml version="1.0" encoding="UTF-8"?> 
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 

     <groupId>project</groupId> 
     <artifactId>mscproject</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <packaging>war</packaging> 

     <name>mscproject</name> 
     <url>http://maven.apache.org</url> 

     <properties> 
      <java.version>1.8</java.version> 
      <spring.version>4.3.6.RELEASE</spring.version> 
      <cglib.version>2.2.2</cglib.version> 
     </properties> 

     <dependencies> 
      <!-- Spring core & mvc --> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
       <version>${spring.version}</version> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-webmvc</artifactId> 
       <version>${spring.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-orm</artifactId> 
       <version>${spring.version}</version> 
       <type>jar</type> 
       <scope>compile</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-core</artifactId> 
       <version>${spring.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-tx</artifactId> 
       <version>${spring.version}</version> 
      </dependency> 

      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-test</artifactId> 
       <version>${spring.version}</version> 
       <type>jar</type> 
       <scope>test</scope> 
      </dependency> 

      <!-- CGLib for @Configuration --> 
      <dependency> 
       <groupId>cglib</groupId> 
       <artifactId>cglib-nodep</artifactId> 
       <version>${cglib.version}</version> 
       <scope>runtime</scope> 
      </dependency> 


      <!-- Servlet Spec --> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>javax.servlet-api</artifactId> 
       <version>3.1.0</version> 
       <scope>provided</scope> 
      </dependency> 
      <dependency> 
       <groupId>javax.servlet.jsp</groupId> 
       <artifactId>javax.servlet.jsp-api</artifactId> 
       <version>2.3.1</version> 
       <scope>provided</scope> 
      </dependency> 
      <!-- For database pull --> 
      <dependency> 
       <groupId>org.apache.commons</groupId> 
       <artifactId>commons-dbcp2</artifactId> 
       <version>2.0</version> 
      </dependency> 

      <!-- mysql connection --> 
      <dependency> 
       <groupId>mysql</groupId> 
       <artifactId>mysql-connector-java</artifactId> 
       <version>6.0.5</version> 
      </dependency> 
      <!-- java standard tag library --> 
      <dependency> 
       <groupId>javax.servlet</groupId> 
       <artifactId>jstl</artifactId> 
       <version>1.2</version> 
      </dependency> 

      <!-- Hibernate dependency --> 
      <dependency> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-core</artifactId> 
       <version>5.1.4.Final</version> 
      </dependency> 
     </dependencies> 

     <repositories> 
      <repository> 
       <id>springsource-milestones</id> 
       <name>SpringSource Milestones Proxy</name> 
       <url>https://oss.sonatype.org/content/repositories/springsource-milestones</url> 
      </repository> 
     </repositories> 

     <build> 
      <finalName>mscproject</finalName> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.0.2</version> 
        <configuration> 
         <source>${java.version}</source> 
         <target>${java.version}</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </project> 

web.xmlファイル

<?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
     <display-name>mscproject</display-name> 
     <context-param> 
      <param-name>contextClass</param-name> 
      <param-value> 
       org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
      </param-value> 
     </context-param> 
     <listener> 
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
     </listener> 

     <servlet> 
      <servlet-name>SpringDispatcher</servlet-name> 
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <init-param> 
       <param-name>contextClass</param-name> 
       <param-value> 
        org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
       </param-value> 
      </init-param> 
      <init-param> 
       <param-name>contextConfigLocation</param-name> 
       <param-value>project.mscproject</param-value> 
      </init-param> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 
     <servlet-mapping> 
      <servlet-name>SpringDispatcher</servlet-name> 
      <url-pattern>/</url-pattern> 
     </servlet-mapping> 

     <session-config> 
      <session-timeout>30</session-timeout> 
     </session-config> 
    </web-app> 

CONTEXTの設定ファイル:

<?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:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:beans="http://www.springframework.org/schema/beans" 
     xmlns:tx="http://www.springframework.org/schema/tx" 

     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 


     <mvc:annotation-driven /> 
     <mvc:resources mapping="/resources/**" location="/resources/" /> 
     <context:component-scan base-package="project.mscproject" /> 
     <context:annotation-config/> 



     <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> 
      <property name="driverClassName" value="${jdbc.driverClassName}" /> 
      <!-- Sets the url to that which was passed to the jdbc driver when connection is created --> 
      <property name="url" value="${jdbc.url}" /> 
      <!-- Sets the username to that which was passed to the jdbc driver when connection is created --> 
      <property name="username" value="${jdbc.username}" /> 
      <!-- Sets the password to that which was passed to the jdbc driver when connection is created --> 
      <property name="password" value="${jdbc.password}" /> 
      <!-- Sets the number of connections created when the pool is initialized --> 
      <property name="initialSize" value="5" /> 
      <!-- Sets the max number of idle connections allowed, if it is greater than this value, the excess idle connections will be destroyed on return to the pool --> 
      <property name= "maxTotal" value = "8"/> 
     </bean> 

     <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
      <property name="basename" value="messages" /> 
     </bean> 
     <!-- Session Factory Declaraton(This creates a hibernate factory session bean) --> 
     <bean id = "SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name = "packagesToScan" value= "project.mscproject.datamodel"/> 
     <property name ="hibernateProperties"> 
      <props> 
       <prop key = "hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key = "hibernate.show_sql">true</prop> 
       <prop key = "hibernate.enable_lazy_load_no_trans">true</prop> 
       <prop key = "use_sql_comments">true</prop> 
       <!-- <prop key = "hibernate.hbm2ddl.auto">create</prop> --> 
      </props> 
     </property> 
     </bean> 
     <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
      <property name="sessionFactory" ref="SessionFactory" /> 
     </bean> 

    </beans> 

DaoImplementationファイル:

package project.mscproject.daoImpl; 
    //import java.util.List; 

    import org.hibernate.Query; 
    import org.hibernate.SessionFactory; 
    import org.hibernate.SharedSessionContract; 
    import org.hibernate.Transaction; 

    import org.springframework.beans.factory.annotation.Autowired; 
    import org.springframework.stereotype.Repository; 
    import org.springframework.transaction.annotation.Transactional; 

    import project.mscproject.dao.UserDao; 
    import project.mscproject.datamodel.Users; 

    @Repository 
    @Transactional 
    public class UserDaoImpl implements UserDao { 

     @Autowired 
     SessionFactory session; 


     public boolean saveOrUpdate(Users users){ 
      //The main function of the session is to offer CRUD operation to objects of mapped entity class. 
      session.getCurrentSession().saveOrUpdate(users); 
      return true; 
     } 



     //public List<Users> list(){ 
     // return session.getCurrentSession().createQuery("from Users").list(); 

     //} 

     public boolean delete(Users users){ 

      try{session.getCurrentSession().delete(users); 

      }catch (Exception ex){ 
       return false; 
      } 
      return true; 

     } 
     public Users loginUser(Users users){ 
      Users use= users; 
      Transaction tx=session.openSession().beginTransaction(); 
      String hql = "from project.mscproject.datamodel.Users as u where u.username =? and u.password =?"; 
        try { 
          Query query = ((SharedSessionContract) session).createQuery(hql); 
          query.setParameter(0, users.getUsername()); 
          query.setParameter(1, users.getPassword()); 
         use = (Users) query.uniqueResult(); 
          tx.commit(); 
          session.close(); 
        } catch (Exception e) { 
           tx.rollback(); 
           session.close(); 
           e.printStackTrace(); 
        } 
        return use; 
     } 
    } 
+0

アプリケーションには、HibernateのSessionFactoryオブジェクトが表示されません。たぶんあなたはxml/JavaConfigの豆とそれをロードする方法でそれを見逃しています。 Beanの構成部分と、SessionFactoryをオートワイヤーするコードを提供します – DevDio

答えて

0

あなたは春にXML configutionをロードしない方法を示していませんでした。 このようにブートストラップしよう:

@Configuration 
@EnableTransactionManagement 
@ImportResource({ "classpath:context-config.xml" }) 
public class HibernateXmlConfig{ 
    //... 
} 
関連する問題