1 package example; 2 3 import java.io.PrintWriter ; 4 import java.io.IOException ; 5 6 import javax.servlet.ServletException ; 7 8 import javax.servlet.http.HttpServlet ; 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 12 import javax.ejb.EntityManager; 13 import javax.ejb.Inject; 14 import javax.ejb.EJB ; 15 16 import javax.transaction.UserTransaction ; 17 18 21 public class SwapServlet extends HttpServlet { 22 @Inject 23 private EntityManager _manager; 24 25 @Inject 26 private UserTransaction _uTrans; 27 28 @EJB (jndiName="swap") 29 private Swap _swap; 30 31 34 public void init() 35 throws ServletException 36 { 37 Course course = null; 38 39 try { 40 course = (Course) _manager.find("Course", new Integer (1)); 41 if (course != null) 42 return; 43 } catch (Exception e) { 44 } 45 46 Course potions = new Course(); 47 potions.setCourse("Potions"); 48 potions.setTeacher("Severus Snape"); 49 50 _manager.create(potions); 51 52 Course xfig = new Course(); 53 xfig.setCourse("Transfiguration"); 54 xfig.setTeacher("Minerva McGonagall"); 55 56 _manager.create(xfig); 57 } 58 59 62 public void service(HttpServletRequest req, HttpServletResponse res) 63 throws java.io.IOException , ServletException 64 { 65 PrintWriter out = res.getWriter(); 66 67 res.setContentType("text/html"); 68 69 Course []courses = new Course[2]; 70 71 courses[0] = (Course) _manager.find("Course", new Integer (1)); 72 courses[1] = (Course) _manager.find("Course", new Integer (2)); 73 74 printCourses(out, "Initial Teachers", courses); 75 76 _swap.swap(courses[0], courses[1]); 78 79 printCourses(out, "Swapped Teachers", courses); 80 81 try { 85 _uTrans.begin(); 86 try { 87 String teacher = courses[0].getTeacher(); 88 courses[0].setTeacher(courses[1].getTeacher()); 89 courses[1].setTeacher(teacher); 90 } finally { 91 _uTrans.commit(); 92 } 93 } catch (Exception e) { 94 throw new ServletException (e); 95 } 96 } 97 98 private void printCourses(PrintWriter out, String title, Course []courses) 99 throws IOException 100 { 101 out.println("<h3>" + title + "</h3>"); 102 103 for (Course course : courses) { 104 out.println("course: " + course.getCourse() + "<br>"); 105 out.println("teacher: " + course.getTeacher() + "<br>"); 106 out.println("<br>"); 107 } 108 } 109 } 110 | Popular Tags |