Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
集成hibernateDAO和spring时出错_Spring_Hibernate_Spring Mvc_Hibernate Mapping - Fatal编程技术网

集成hibernateDAO和spring时出错

集成hibernateDAO和spring时出错,spring,hibernate,spring-mvc,hibernate-mapping,Spring,Hibernate,Spring Mvc,Hibernate Mapping,我在获取dao层上的会话对象时遇到问题。我已将hibernate dao与spring集成,但我无法找出问题所在。这是我的错误 8 Mar, 2013 5:05:33 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments

我在获取dao层上的会话对象时遇到问题。我已将hibernate dao与spring集成,但我无法找出问题所在。这是我的错误

    8 Mar, 2013 5:05:33 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Services\IPT\;C:\Program Files (x86)\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Dell\Dell Data Protection\Access\Advanced\Wave\Gemalto\Access Client\v5\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\Java\jdk1.6.0_31\bin;;.
8 Mar, 2013 5:05:34 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:EmployeeWebSpring' did not find a matching property.
8 Mar, 2013 5:05:34 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
8 Mar, 2013 5:05:34 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
8 Mar, 2013 5:05:34 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 459 ms
8 Mar, 2013 5:05:34 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
8 Mar, 2013 5:05:34 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
8 Mar, 2013 5:05:34 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Users\ankurj\hibernate\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\EmployeeWebSpring\WEB-INF\lib\servlet-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
8 Mar, 2013 5:05:34 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags is already defined
8 Mar, 2013 5:05:34 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://www.springframework.org/tags/form is already defined
8 Mar, 2013 5:05:35 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'ds'
8 Mar, 2013 5:05:37 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
8 Mar, 2013 5:05:37 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
8 Mar, 2013 5:05:37 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3621 ms
8 Mar, 2013 5:05:38 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
8 Mar, 2013 5:05:51 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ds] in context with path [/EmployeeWebSpring] threw exception [Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;] with root cause
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
    at com.nousinfo.tutorial.dao.impl.EmployeeDAOImpl.getAllEmployees(EmployeeDAOImpl.java:56)
    at com.nousinfo.tutorial.service.impl.EmployeeServiceImpl.getAllEmployees(EmployeeServiceImpl.java:50)
    at com.nousinfo.tutorial.controllers.SearchEmployeeController.getAllEmployee(SearchEmployeeController.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
8 Mar, 2013 5:06:08 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ds] in context with path [/EmployeeWebSpring] threw exception [Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;] with root cause
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
    at com.nousinfo.tutorial.dao.impl.DepartmentDAOImpl.getDepartment(DepartmentDAOImpl.java:155)
    at com.nousinfo.tutorial.service.impl.DepartmentServiceImpl.getDepartment(DepartmentServiceImpl.java:96)
    at com.nousinfo.tutorial.controllers.SearchDepartmentController.searchByDepartmentNo(SearchDepartmentController.java:84)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
8 Mar, 2013 5:37:40 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ds] in context with path [/EmployeeWebSpring] threw exception [Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;] with root cause
java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/Session;
    at com.nousinfo.tutorial.dao.impl.EmployeeDAOImpl.getAllEmployees(EmployeeDAOImpl.java:56)
    at com.nousinfo.tutorial.service.impl.EmployeeServiceImpl.getAllEmployees(EmployeeServiceImpl.java:50)
    at com.nousinfo.tutorial.controllers.SearchEmployeeController.getAllEmployee(SearchEmployeeController.java:193)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:774)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
这是我的dispacher servlet

  <?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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                           http://www.springframework.org/schema/context 
                           http://www.springframework.org/schema/context/spring-context-3.2.xsd
                           http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

    <context:annotation-config />

    <mvc:annotation-driven />

    <bean class="org.springframework.jdbc.datasource.DriverManagerDataSource"
        id="dataSource">
        <property value="com.mysql.jdbc.Driver" name="driverClassName" />
        <property value="jdbc:mysql://192.168.25.30:3306/employee"
            name="url" />
        <property value="hr" name="username" />
        <property value="hr123" name="password" />
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.nousinfo.tutorial.model.Department</value>
                <value>com.nousinfo.tutorial.model.Employee</value>
                <value>com.nousinfo.tutorial.model.EmployeeProject</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>

    <bean id="employeeDaoImpl" class="com.nousinfo.tutorial.dao.impl.EmployeeDAOImpl">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="departmentDaoImpl" class="com.nousinfo.tutorial.dao.impl.DepartmentDAOImpl">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <bean id="projectDaoImpl" class="com.nousinfo.tutorial.dao.impl.ProjectDAOImpl">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="employeserviceImpl"
        class="  com.nousinfo.tutorial.service.impl.EmployeeServiceImpl">
        <property name="employeeDAOImpl" ref="employeeDaoImpl" />
    </bean>
    <bean id="departmentserviceImpl"
        class=" com.nousinfo.tutorial.service.impl.DepartmentServiceImpl">
        <property name="departmentDAOImpl" ref="departmentDaoImpl" />
    </bean>

    <bean id="projectserviceImpl" class="com.nousinfo.tutorial.service.impl.ProjectServiceImpl">
        <property name="projectDAOImpl" ref="projectDaoImpl" />
    </bean>






    <bean id="employeeValidator" class="com.nousinfo.tutorial.validator.EmployeeValidator" />

    <bean id="mycontroller"
        class="com.nousinfo.tutorial.controllers.SearchEmployeeController">
        <property name="employeeServiceImpl" ref="employeserviceImpl"></property>

    </bean>
    <bean id="emplController" class="com.nousinfo.tutorial.controllers.EmployeeController">
        <property name="employeeServiceImpl" ref="employeserviceImpl" />
        <property name="projectServiceImpl" ref="projectserviceImpl" />
        <property name="employeeValidator" ref="employeeValidator"></property>
    </bean>




    <bean id="departmentValidator" class="com.nousinfo.tutorial.validator.DepartmentValidator" />

    <bean id="deaprtmentController" class="com.nousinfo.tutorial.controllers.DepartmentController">
        <property name="departmentServiceImpl" ref="departmentserviceImpl"></property>
        <property name="departmentValidator" ref="departmentValidator"></property>
    </bean>

    <bean id="deptCotrooler"
        class="com.nousinfo.tutorial.controllers.SearchDepartmentController">
        <property name="departmentServiceImpl" ref="departmentserviceImpl"></property>
    </bean>



    <bean id="projectValidator" class="com.nousinfo.tutorial.validator.ProjectValidator" />

    <bean id="projectController" class="com.nousinfo.tutorial.controllers.ProjectController">
        <property name="projectServiceImpl" ref="projectserviceImpl"></property>
        <property name="projectValidator" ref="projectValidator"></property>
    </bean>
    <bean id="projectSearchController"
        class="com.nousinfo.tutorial.controllers.SearchProjectController">
        <property name="projectServiceImpl" ref="projectserviceImpl"></property>

    </bean>




    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/" p:suffix=".jsp" />

    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="com/nousinfo/resources/messages" />
    </bean>
    <!-- Configure the multipart resolver -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </bean>
</beans>

com.nousinfo.tutorial.model.Department
com.nousinfo.tutorial.model.Employee
com.nousinfo.tutorial.model.EmployeeProject
org.hibernate.dialogue.hsql方言
真的
更新
这就是我在dao层设置会话对象的方式

   public class EmployeeDAOImpl implements EmployeeDAO {

        /**
         * This block is used to initialising the session object created by
         * sessionFactory using HibernateUtil class. A org.hibernate.Session
         * represents a single-threaded unit of work.
         */
        /*
         * static { session = HibernateUtil.getSessionFactory().openSession(); }
         */
        private SessionFactory sessionFactory;

        /**
         * @return the sessionFactory
         */
        public SessionFactory getSessionFactory() {
            return sessionFactory;
        }

        /**
         * @param sessionFactory
         *            the sessionFactory to set
         */
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }

        /**
         * This will get all employees from the database
         * 
         * @return list of employee
         */
        @SuppressWarnings("unchecked")
        @Override
        public List<Employee> getAllEmployees() {
            Session session = sessionFactory.openSession();

            Criteria criteria = (Criteria) session.createCriteria(Employee.class);

            List<Employee> employeeList = criteria.list();
            return employeeList;
        }}
public类EmployeeDAOImpl实现EmployeeDAO{
/**
*此块用于初始化由创建的会话对象
*sessionFactory使用HibernateUtil class.A org.hibernate.Session
*表示单线程工作单元。
*/
/*
*静态{session=HibernateUtil.getSessionFactory().openSession();}
*/
私人会话工厂会话工厂;
/**
*@返回sessionFactory
*/
public SessionFactory getSessionFactory(){
返回工厂;
}
/**
*@param sessionFactory
*要设置的sessionFactory
*/
public void setSessionFactory(SessionFactory SessionFactory){
this.sessionFactory=sessionFactory;
}
/**
*这将从数据库中获取所有员工
* 
*@员工返回名单
*/
@抑制警告(“未选中”)
@凌驾
公共列表getAllEmployees(){
Session Session=sessionFactory.openSession();
标准=(标准)session.createCriteria(Employee.class);
List employeeList=criteria.List();
返回员工名单;
}}

我注意到您的类路径中明显缺少hibernate核心。这一点很重要,因为它是所有Hibernate代码的所在地。此外,在SpringHibernate应用程序中,您应该始终使用SessionFactory.openSession(),而不要使用它。有关详细信息,请参阅。

下面的类似问题。希望这有帮助。