최대 절전 모드와 struts2를 통합하려고합니다. 오류가 없습니다. 하지만 세션이 전혀 생성되지 않습니다. 다음은 내 코드입니다. CustomerAction.java세션 세션 = sessionFactory.openSession(); 최대 절전 모드에서 작동하지 않습니다.
public String addCustomer(Customer customer) throws Exception{
//get hibernate session from the servlet context
SessionFactory sessionFactory =
(SessionFactory) ServletActionContext.getServletContext()
.getAttribute(HibernateListener.KEY_NAME);
System.out.println("session factory accessed");
Session session = sessionFactory.openSession();
System.out.println("session created");
//save it
session.beginTransaction();
System.out.println("Transaction begin");
session.save(customer);
session.getTransaction().commit();
}
HibernateListener.java
public class HibernateListener implements ServletContextListener{
private Configuration config;
private SessionFactory factory;
private String path = "/hibernate.cfg.xml";
private static Class clazz = HibernateListener.class;
public static final String KEY_NAME = clazz.getName();
public void contextDestroyed(ServletContextEvent event) {
//
}
public void contextInitialized(ServletContextEvent event) {
try {
SessionFactory sessionFactory =
new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
System.out.println("session factory created");
//save the Hibernate session factory into serlvet context
event.getServletContext().setAttribute(KEY_NAME, factory);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
struts.xml
<struts>
<constant name="struts.devMode" value="false" />
<package name="default" namespace="/" extends="struts-default">
<action name="addCustomer"
class="com.mkyong.customer.action.CustomerAction">
<result name="success">WEB-INF/pages/customer.jsp</result>
</action>
</package>
</struts>
이 코드는 오류를주는 것이 아니라, 데이터가 데이터베이스에 삽입되지 않습니다.
감사합니다. 그러나 나는 http://www.mkyong.com/struts2/struts-2-hibernate-integration-example/의 도움을 받았다. 위의 코드는 이와 같습니다. –
이 답변으로 투표에 도움이되고 동의하는 경우. –