posts - 1,  comments - 3,  trackbacks - 0
          I am a freshman of hibernate. Today I configured the tutorial hibernate application following the hibernate reference(3.2). By the way, the refenrence is rather excellent. Everything went well until I came to the first Servlet Page. Error printed as followed:

          hibernate Transaction not successfully started


          I then checked the codes and configurations. The former program ran well on console, but when it came to Servlet it failed. Refering to some articles found, I refactoried the code. The diffrence is that I stated a Transaction variable tx. It then works. The file EventManagerServlet.java is as below:


          package com.CarlElit.HelloWorld.events;

          import java.util.Date;
          import com.CarlElit.HelloWorld.util.HibernateUtil;
          import org.hibernate.Session;
          import org.hibernate.Transaction;
          import java.util.List;
          import java.text.SimpleDateFormat;
          import java.util.Iterator;

          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.ServletException;
          import java.io.IOException;
          import java.io.PrintWriter; 

          public class EventManagerServlet extends HttpServlet {
              
          static final private String CONTENT_TYPE = "text/html,charset=utf-8";
              
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
              
          throws ServletException, IOException {
                  SimpleDateFormat dateFormatter 
          = new SimpleDateFormat("yyyy-MM-dd");
                  Transaction tx 
          = null;
                  
          try
                  {
                      PrintWriter out 
          = response.getWriter();
                      Session session 
          = HibernateUtil.getSessionFactory().getCurrentSession();
                      tx 
          = session.beginTransaction();

                      response.setContentType(CONTENT_TYPE);  
                      out.println(
          "<html><head><title>Event Manager</title></head><body>");

                      
          if ("store".equals(request.getParameter("action")))
                      {
                          String eventTitle 
          = request.getParameter("eventTitle");
                          String eventDate 
          = request.getParameter("eventDate");
                          
          if ("".equals(eventTitle) || "".equals(eventDate))
                          {
                              out.println(
          "<b><i>Please enter event title and date.</i></b>");
                          }
          else 
                          {
                              createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));
                              out.println(
          "<b><i>Added event.</i></b>");
                          }
                      }
                      printEventForm(out);
                      listEvents(out, dateFormatter);

                      out.println(
          "</body></html>");
                      out.flush();
                      out.close();

                      tx.commit();
                  }
                  
          catch (Exception ex)
                  {
                      
          if (tx != null)
                      {
                          tx.rollback();
                      }
                      
          throw new ServletException(ex);
                  }
              }

              
          private void printEventForm(PrintWriter out) {
                  out.println(
          "<h2>Add new event:</h2>");
                  out.println(
          "<form>");
                  out.println(
          "Title: <input name='eventTitle' length='50'/><br/>");
                  out.println(
          "Date (e.g. 2008-11-18): <input name='eventDate' length='10'/><br/>");
                  out.println(
          "<input type='submit' name='action' value='store'/>");
                  out.println(
          "</form>");
              }

              
          private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) {
                  List result 
          = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(Event.class).list();
                  
          if (result.size() > 0)
                  {
                      out.println(
          "<h2>Events in database:</h2>");
                      out.println(
          "<table border='1'>");
                      out.println(
          "<tr>");
                      out.println(
          "<th>Event Title</th>");
                      out.println(
          "<th>Event Date</th>");
                      out.println(
          "</tr>");
                      
          for (Iterator it = result.iterator(); it.hasNext(); )
                      {
                          Event event 
          = (Event) it.next();
                          out.println(
          "<tr>");
                          out.println(
          "<td>" + event.getTitle() + "</td>");
                          out.println(
          "<td>" + dateFormatter.format(event.getDate()) + "</td>");
                          out.println(
          "</tr>");
                      }
                      out.println(
          "</table>");
                  }
              }

              
          protected void createAndStoreEvent(String title, Date theDate) {
                  Event theEvent 
          = new Event();
                  theEvent.setTitle(title);
                  theEvent.setDate(theDate);
                  HibernateUtil.getSessionFactory().getCurrentSession().save(theEvent);
              }
          }



          For all code please email to : caishaojiang@gmail.com
          posted @ 2008-03-05 18:13 Carl 閱讀(3546) | 評論 (1)編輯 收藏
          僅列出標(biāo)題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 康乐县| 无为县| 灵武市| 石城县| 滨州市| 额尔古纳市| 永济市| 云梦县| 普洱| 江阴市| 永靖县| 抚顺县| 十堰市| 高要市| 华阴市| 吐鲁番市| 葫芦岛市| 南京市| 如皋市| 托里县| 陵水| 邮箱| 阿合奇县| 依兰县| 吉林市| 长阳| 棋牌| 化州市| 柳河县| 水城县| 黑河市| 恩施市| 玉田县| 蓬安县| 公主岭市| 巨野县| 湘乡市| 伊宁县| 淮南市| 花垣县| 泸定县|