2012-12-09 4 views
0

나는 봄 MVC에서 새로운 사람이다. 나는 STS를 사용하고 있으며 Spring MVC Template Project (Maven을 기본적으로 사용함)를 만들었다. 나는 Hibernate를 사용하려고 노력하고 있는데, 디폴트 자바 프로젝트에서/src 폴더에 hibernate.xml.cfg를 넣어야한다는 것을 안다. 제 경우에는 (maven을 사용하는 Spring MVC Template을 가지고) 이것을 읽었습니다. hibernate.cfg.xml을 src/main/resources/WEB-INF/classes에 넣어야합니다. 그러나 그것은 역시 도움이되지 못했습니다. 난 아직도 ClassNotFoundException가 있습니다MVC 템플릿 프로젝트는 hibernate.cfg.xml을 보지 않는다.

public class HibernateUtil { 

    private static final SessionFactory sessionFactory; 

    static { 

     try { 

      // Create the SessionFactory from hibernate.cfg.xml 
      //AnnotationConfiguration 
      sessionFactory = new Configuration().configure().buildSessionFactory(); 

     } catch (Throwable ex) { 
      // Make sure you log the exception, as it might be swallowed 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 

     return sessionFactory; 

    } 
} 

어쩌면 내가있는 hibernate.cfg.xml에 대해 뭔가를 작성해야 :

<?xml version='1.0' encoding='utf-8'?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 

    <session-factory> 

     <!-- Database connection settings --> 
     <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> 
     <property name="connection.url">jdbc:sqlserver://localhost:1433</property> 
     <property name="connection.username">hibernate</property> 
     <property name="connection.password">123456</property> 

     <!-- SQL dialect --> 
     <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> 

     <!-- JDBC connection pool (use the built-in) --> 
     <property name="connection.pool_size">1</property> 

     <!-- Enable Hibernate's automatic session context management --> 
     <property name="current_session_context_class">thread</property> 

     <!-- Disable the second-level cache --> 
     <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

     <!-- Echo all executed SQL to stdout --> 
     <property name="show_sql">true</property> 


     <!-- Mapping files --> 
      <mapping class="com.andrew.ModelPackage.Student"/> 
      <mapping class="com.andrew.ModelPackage.Subject"/> 

    </session-factory> 

</hibernate-configuration> 

내 HibernateUtil과 클래스 : 여기

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/mvc] threw exception [Handler processing failed; nested exception is java.lang.ExceptionInInitializerError] with root cause 
java.lang.ClassNotFoundException: org.dom4j.DocumentException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at com.andrew.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:18) 
    at com.andrew.hibernate.DAO.getStudent(DAO.java:48) 
    at com.andrew.mvc.HomeController.home(HomeController.java:37) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
    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:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    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:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
    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:1002) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

내있는 hibernate.cfg.xml입니다 web.xml 또는 servlet-context.xml에서? 나는이 문제로 약 7 시간 동안 싸우고 있는데 프로젝트의 모든 폴더에 hibernate.cfg.xml을 넣으려고했으나 도움이되지 않았다.

답변

1

IMO는 hibernate.cfx.xml의 위치에 문제가 없지만 누락 된 라이브러리처럼 보입니다. 클래스 경로에 dom4j.jar을 추가해야합니다.

+1

안녕하세요, 'andrew'가 패키지 인 경우 'HibernateUtil '생성자에서 'dom4j.jar'를 사용하려고합니다. – Stefan

+0

얘들 아! 다들 감사 해요. 나는 아주 부주의했다. 그것은 작동합니다! 건배! –