Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动连接sessionfactory时出错_Java_Spring_Hibernate_Spring Mvc - Fatal编程技术网

Java 自动连接sessionfactory时出错

Java 自动连接sessionfactory时出错,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我真的是springmvc的新手,正在努力学习,我真的被这个错误困住了。你可能认为那个问题是重复的,但我搜索了相关的问题,但对我来说不起作用。我得到的错误如下 SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.

我真的是springmvc的新手,正在努力学习,我真的被这个错误困住了。你可能认为那个问题是重复的,但我搜索了相关的问题,但对我来说不起作用。我得到的错误如下

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDaoImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.xas.common.daoImpl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.hibernate.SessionFactory] 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)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    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:772)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
    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)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.xas.common.daoImpl.UserDaoImpl.sessionFactory; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.hibernate.SessionFactory] 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)}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ... 22 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.hibernate.SessionFactory] 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)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
    ... 24 more
dispatcher-servlet.xml如下所示

/WEB-INF/views/
.jsp
applicationContext.xml

org.hibernate.dialogue.mysqldialogue
真的
真的
测试
真的
真的
web.xml

夏斯曼
应用程序上下文
/WEB-INF/applicationContext.xml
xasweb调度员
org.springframework.web.servlet.DispatcherServlet
1.
xasweb调度员
/
上下文配置位置
/WEB-INF/xasweb-dispatcher-servlet.xml
org.springframework.web.context.ContextLoaderListener
userDaoImpl 包com.xas.common.daoImpl

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

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

import com.xas.common.dao.UserDao;
import com.xas.model.User;

@Repository
@Transactional
public class UserDaoImpl implements UserDao {
     @Autowired
    private SessionFactory sessionFactory;
    public List<User> getUsers() {

    return  sessionFactory.getCurrentSession().createQuery("from userprofile").list();

    }



}
import java.util.List;
导入javax.persistence.EntityManager;
导入javax.persistence.Query;
导入org.hibernate.SessionFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Component;
导入org.springframework.stereotype.Repository;
导入org.springframework.transaction.annotation.Transactional;
导入com.xas.common.dao.UserDao;
导入com.xas.model.User;
@存储库
@交易的
公共类UserDaoImpl实现UserDao{
@自动连线
私人会话工厂会话工厂;
公共列表getUsers(){
返回sessionFactory.getCurrentSession().createQuery(“从用户配置文件”).list();
}
}
用户服务
package com.xas.common.serviceinpl;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Component;
导入org.springframework.stereotype.Service;
导入com.xas.common.dao.UserDao;
导入com.xas.common.service.UserService;
导入com.xas.model.User;
@组成部分
@服务
公共类UserServiceImpl实现UserService{
@自动连线
UserDao UserDao;
公共列表getUsers(){
//TODO自动生成的方法存根
返回userDao.getUsers();
}
}
pom.xml

4.0.0
com.xas.main
夏斯曼
0.0.1
战争
4.2.6.1发布
朱尼特
朱尼特
3.8.1
测试
javax.servlet
javax.servlet-api
3.1.0
javax.servlet
jstl
1.2
org.springframework
spring上下文支持
4.2.6.1发布
org.springframework
SpringWebMVC
4.2.6.1发布
org.springframework
春季甲虫
4.2.6.1发布
org.springframework
德克萨斯州春季
4.2.6.1发布
org.springframework
弹簧网
4.2.6.1发布
公共dbcp
公共dbcp
1.4
mysql
mysql连接器java
5.1.36
org.codehaus.jackson
杰克逊地图绘制者
1.9.10
com.google.code.gson
格森
2.3
org.hibernate
冬眠核心
4.1.0.1最终版本
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.0.1决赛

在春天从头开始构建web应用真的很难,我为此浪费了很多时间。我怎么了?感谢您的帮助

<context-param>
    <param-name>ApplicationContext</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
...
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/xasweb-dispatcher-servlet.xml</param-value>
</context-param>
<context-param>
    <param-name>ApplicationContext</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
...
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/xasweb-dispatcher-servlet.xml</param-value>
</context-param>


在您的
web.xml中
替换


应用程序上下文
/WEB-INF/applicationContext.xml
...
上下文配置位置
/WEB-INF/xasweb-dispatcher-servlet.xml


上下文配置位置
/WEB-INF/xasweb-dispatcher-servlet.xml
/WEB-INF/applicationContext.xml

配置仅从上下文参数提供的文件中读取
contextConfigLocation

您应该使用使用Java配置的Spring boot,这比Spring MVC的传统XML设置容易得多,有关更多信息,请查看@AliAdnan感谢您的建议,我知道SpringBoot更容易,但我有一些理由学习SpringMVC。你有hibernate所需的所有依赖项吗?请同时发布您的pom文件。@AbdullahKhan我添加了pom.xml文件。我想您的pom缺少一些必需的依赖项。检查并检查名称空间您所说的名称空间@Mudassari在我的dispatcher servlet.xml文件中有注释驱动和组件扫描代码。我将其复制到appContext.xml,但相同:(这就是我所说的名称空间“”的意思,我所做的一切都没有改变@blafasel
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

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

import com.xas.common.dao.UserDao;
import com.xas.model.User;

@Repository
@Transactional
public class UserDaoImpl implements UserDao {
     @Autowired
    private SessionFactory sessionFactory;
    public List<User> getUsers() {

    return  sessionFactory.getCurrentSession().createQuery("from userprofile").list();

    }



}
package com.xas.common.serviceImpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.xas.common.dao.UserDao;
import com.xas.common.service.UserService;
import com.xas.model.User;
@Component
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserDao userDao;

    public List<User> getUsers() {
        // TODO Auto-generated method stub
        return userDao.getUsers();
    }



}
<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>com.xas.main</groupId>
    <artifactId>XASMAIN</artifactId>
    <version>0.0.1</version>
    <packaging>war</packaging>

    <properties>
        <org.springframework.version>4.2.6.RELEASE</org.springframework.version>

    </properties>
    <dependencies>


            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>

            <!-- -->

            <!-- http://mvnrepository.com/artifact/org.springframework/spring-context-support -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>


            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>


            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.36</version>
            </dependency>


            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.10</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.3</version>
            </dependency>

            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>4.1.0.Final</version>
            </dependency>


            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
                <version>1.0.0.Final</version>
            </dependency>

    </dependencies>
</project>
<context-param>
    <param-name>ApplicationContext</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
...
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/xasweb-dispatcher-servlet.xml</param-value>
</context-param>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
    </param-value>
</context-param>
<context:annotation-config />
<mvc:annotation-driven />
<context-param>
    <param-name>ApplicationContext</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
...
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/xasweb-dispatcher-servlet.xml</param-value>
</context-param>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/xasweb-dispatcher-servlet.xml
        /WEB-INF/applicationContext.xml
    </param-value>
</context-param>