2012-07-03 2 views
0

저는 봄과 겨울잠에 새로운입니다. 이제 일부 데이터를 mySql 데이터베이스에 저장하려고합니다. 하지만 몇 가지 오류가 발생합니다. 최대 절전 모드 주석을 사용하기 위해 dispatcher-servelet.xml에 필요한 구성이 있습니까? 문제를 어떻게 해결할 수 있습니까?AnnotationConfiguration 인스턴스가 필요합니다.

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.ExceptionInInitializerError 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 


root cause 
java.lang.ExceptionInInitializerError 
com.application.util.HibernateUtil.<clinit>(HibernateUtil.java:21) 
com.application.service.EmployeeServiceImpl.add(EmployeeServiceImpl.java:22) 
com.application.controller.UserController.onSubmit(UserController.java:34) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:415) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:387) 
org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272) 
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268) 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 


root cause 
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.application.domain.Employee"/> 
org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1600) 
org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) 
org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) 
org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508) 
org.hibernate.cfg.Configuration.configure(Configuration.java:1428) 
org.hibernate.cfg.Configuration.configure(Configuration.java:1414) 
com.application.util.HibernateUtil.<clinit>(HibernateUtil.java:18) 
com.application.service.EmployeeServiceImpl.add(EmployeeServiceImpl.java:22) 
com.application.controller.UserController.onSubmit(UserController.java:34) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:415) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:387) 
org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272) 
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268) 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

최대 절전 모드 설정 파일은 대답 에서

<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/employee_db</property> 
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password"></property> 
    <property name="connection.pool_size">1</property> 
    <property name="show_sql">true</property> 
    <property name="hbm2ddl.auto">create</property> 

    <mapping class="com.application.domain.Employee" /> 
    </session-factory> 
</hibernate-configuration> 

디스패처-servelet.xml

<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:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 

<!-- 
Most controllers will use the ControllerClassNameHandlerMapping above, but 
for the index controller we are using ParameterizableViewController, so we must 
define an explicit mapping for it. 
--> 
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
     <props> 
      <prop key="index.htm">indexController</prop> 
     </props> 
    </property> 
</bean> 

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

<bean name="indexController" 
     class="org.springframework.web.servlet.mvc.ParameterizableViewController" 
     p:viewName="index" /> 

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" 
p:basename="messages" /> 
<bean id="employeeService" class="com.application.service.EmployeeServiceImpl" /> 
<bean id="employeeValidator" class="com.application.validator.EmployeeValidator" /> 
<bean name="userRegistration.htm" class="com.application.controller.UserController" 
    p:employeeService-ref="employeeService" p:formView="employeeForm" 
    p:successView="employeeSuccess" p:validator-ref="employeeValidator"/> 

</beans> 

사용 후 hibernet.cfg.xml있는 hibernate.cfg.xml

입니다 새 예외 1

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class com.application.util.HibernateUtil 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 


root cause 
java.lang.NoClassDefFoundError: Could not initialize class com.application.util.HibernateUtil 
com.application.service.EmployeeServiceImpl.add(EmployeeServiceImpl.java:22) 
com.application.controller.UserController.onSubmit(UserController.java:34) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:415) 
org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:387) 
org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272) 
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268) 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

16,는 거기에 EmployeeServiceImpl.java 및 HibernateUtil.java이

public class EmployeeServiceImpl implements EmployeeService { 

@Override 
public void add(Employee employee) { 
//Persist the user object here. 
    Session session = HibernateUtil.getSessionFactory().openSession(); 
    Transaction transaction = null; 
    try { 
     transaction = session.beginTransaction(); 
     session.save(employee); 
     transaction.commit(); 
    } catch (HibernateException e) { 
     transaction.rollback(); 
    } finally { 
     session.close(); 
    } 
    System.out.println("User added successfully"); 
} 
} 

public class HibernateUtil { 
private static final SessionFactory sessionFactory; 
static { 
    try { 
     sessionFactory = new Configuration().configure().buildSessionFactory(); 
    } catch (Throwable ex) { 
     System.err.println("Initial SessionFactory creation failed." + ex); 
     throw new ExceptionInInitializerError(ex); 
    } 
} 
public static SessionFactory getSessionFactory() { 
return sessionFactory; 
} 
} 
+0

세션 팩토리를 구성하기 위해 Spring을 사용하지 않는 이유가 있습니까? –

답변

0

return new AnnotationConfiguration().configure().buildSessionFactory(); 

Take a look

+0

재생 주셔서 감사 합니다만 작동하지 않습니다. 나는 SimpleFormController를 사용하고있다. – Sudeepta

+0

시도했지만 다른 오류가 표시됩니다. 나는 "사용 후 hibernet.cfg.xml 응답 새 Exception1" – Sudeepta

+0

에서 내 질문에 울부 짖는 소리를 추가했습니다. 작동하지 않습니다. 원하는 경우 내 코드를 보낼 수있는 방법이 있습니까? – Sudeepta

-1
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configLocation" value="/WEB-INF/hibernate.cfg.xml"></property> 
     <property name="configurationClass">    
      <value>org.hibernate.cfg.AnnotationConfiguration</value>   
     </property> 
     <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
      <prop key="hibernate.show_sql">${jdbc.showsql}</prop> 
     </props> 
    </property> 
로 SessionFactory를 최대 절전 모드 - 주석 항아리를 추가 구축 할 필요가이 클래스에 문제

나를 위해 잘 작동 위의 구성을 사용할 수 있습니다.

관련 문제