SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
1




                                                                   Hand-on
                                                                   Exercises



                                                         การพัฒนฒนาโปรแกรม
                                                               EJB 3.0 and JPA
                                                                       โดยใช้੼ 
                                                               Eclipse และ JBoss



                           Assoc.Prof.Dr.Thanachart Numnonda
                                                                 Software Park Thailand
                                               and
                                 Asst Prof.Thanisa Kruawaisayawan
                              King Mongkut's Institute of Technology Ladkrabang




                                                                    June 2011



การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
2




                                                                                                                                                     บทนำ

             เอกสารนใช้ในการประกอในการประกอบการสอนวช้ในการประกอา Java 301 : EJB 3.0 ของหลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกสตร Mini Master of Java
Technology คณะเทคโนโลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศยสารสนเทศ สถาบนพัฒนระจอมเกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาเจาค'ณทหารลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาด้วย Enterprise กระบง โด้วย Enterprise ยมจ'ด้วย Enterprise ประสงค(เพัฒน)*อให
,เรยนได้วย Enterprise เขาใจถ.งการพัฒนฒนาโปรแกรม Java Enterprise Application ท*ใช้ในการประกอ Enterprise Java Bean 3.0 แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ
Java Persistence API ทงนแบบ/.กหด้วย Enterprise นอางองกบเคร)*องม)อพัฒนฒนาโปรแกรมจาวา Eclipse แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ โปรแกรม
JBoss Application Server


                                                                                                                                                                                                                         thananum@gmail.com
                                                                                                                                                                                                                          twitter.com/thanachart
                                                                                                                                                                                                                   www.facebook.com/thanachart
                                                                                                                                                                                                                          www.thaijavadev.com

                                                                                                                                                                                                                                                                             มถ'นายน 2554




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                      Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
3




สารบัญญ
Exercise 1 Stateless Session Bean Using EJB 3.0................................................................................4
Exercise 2 Stateful Session Bean Using EJB 3.0...............................................................................21
Exercise 3 Entity Class (JPA).............................................................................................................26
Exercise 4 การพัฒนาJSP เพื่อเฒนา JSP เพัฒนาJSP เพื่อเอเรยกใช้  EJB 3.0	36x1King  EJB 3.0.....................................................................................36
Exercise 5 JPA : Entity Relationships................................................................................................41
Exercise 6 JPA: Inheritance................................................................................................................60
Exercise 7 Message Driven Bean.......................................................................................................70
Exercise 8 EJB Security.....................................................................................................................75
Exercise 9 Using Java Persistence API in Visual Web JSF applications...........................................83




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                             Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
4

                             Exercise 1 Stateless Session Bean Using EJB 3.0

                       แบบ/.กหด้วย Enterprise นเป0นการพัฒนฒนาโปรแกรม Enterprise Java Bean (EJB) โด้วย Enterprise ยใช้ในการประกอ EJB 3.0 สราง Session
Bean แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะแสด้วย Enterprise งตวอย1างการเรยกใช้ในการประกอ Session Bean จาก Web Application โด้วย Enterprise ยใช้ในการประกอ Java Servlet แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะจาก
Desktop Application โด้วย Enterprise ยใช้ในการประกอ Java SE

ขนตอนในการพัฒนาโปรแกรมฒนาโปรแกรม
   1. สราง Enterprise Application Project
   2. พัฒนฒนา Session Bean
   3. พัฒนฒนา Web Application
   4. พัฒนฒนา Desktop Application

1.1           ก รสร ง Enterprise Application Project

                   สราง Project แบบ Enterprise Application ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งม EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module ภายในตว Project

         1.        สราง Project โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกเมน File → New → Enterprise Application Project
                   ก4าหนด้วย Enterprise  Project Name เป0น SessionBeanDemo
         2.        สราง Server ท*จะรน Click ท*ป'1ม New Runtime...
                   ก4าหนด้วย Enterprise  Directory ท*ม JBoss Application Server อย1
         3.        กด้วย Enterprise  Next กด้วย Enterprise ป'1ม New Module... เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module กด้วย Enterprise  Finish จนจบ Wizard




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                          Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
5




                                                          รปที่  1.1 การสราง Enterprise Application Project



การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                            Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
6


1.2        ก รพัฒนฒนำ โปรแกรม Session Bean

                      โปรแกรม EJB จะใช้ในการประกอ Session Bean ในการตด้วย Enterprise ต1อกบโปรแกรมอ)*นๆ ภายนอก EJB Container
โด้วย Enterprise ย Session Bean จะประกอบด้วย Enterprise วย Business Method ต1างๆ ในแบบ/.กหด้วย Enterprise จะสราง Session Bean ท*ช้ในการประกอ)*อ
BLSession ท*ม Business method สองเมธอด้วย Enterprise ค)อ
                           ●          String sayHi(String name)
                           ●          double currencyConvert(String currency, double amt)

                โด้วย Enterprise ยเราสามารถท*จะพัฒนฒนาโปรแกรมนได้วย Enterprise ด้วย Enterprise งน
        1.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoEJB → New → Session Bean(EJB 3.x)
        2.      ก4าหนด้วย Enterprise  Java package = ejb
                Class Name = BLSession
                State Type = Stateless
                Create Business Interface เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกทง Remote แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Local ด้วย Enterprise งรปท* 1.2




                                                                                      รปที่  1.2 ไดอะล็อกการสร้าง Sอกการสราง Session Bean




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                        Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
7


        3.      แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise    Finish โปรแกรมจะสรางไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(ต1างๆ มาใหด้วย Enterprise งรป




                                                                                                                                               รปที่  1.3 โครงสรางของไฟล็อกการสร้าง Sของ Session Bean

        4. Declare Method Signature 2 methods ท* Interface BLSessionLocal , BLSessionRemote

                                                                                                 Method Name ช้ในการประกอ)*อ sayHi
                                                                                                 Return Type : String
                                                                                                 Input Parameter = name                                             เป0น String

                                                                                                 Method Name ช้ในการประกอ)*อ currencyConvert
                                                                                                 Return Type : double
                                                                                                 Input Parameter 1 = currency เป0น String
                                                                                                 Input Parameter 2 = amt                                            เป0น double

                                                                                                 ท4าไมตอก4าหนด้วย Enterprise  Signature Method ใหกบ Interface? ม 2 กรณ ค)อ
                                                                                                 1. ,เรยก EJB อย1บน Virtual Machine เด้วย Enterprise ยวกนกบ EJB
                                                                                                     ,เรยกจะใช้ในการประกองาน Method ท*ระบ'ใน Interface BLSessionLocal
                                                                                                 2. ,เรยกอย1คนลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Virtual Machine หร)อคนลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเคร)อง
                                                                                                                                                                                                                                                                 *
                                                                                                     ,เรยกจะใช้ในการประกองาน Method ท*ระบ'ใน Interface BLSessionRemote




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                  Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
8

Listing 1.1 ประกาศ Signature Method ท* Interface ทง Local แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Remote
--- File Local--------------------------------------------------------------
@Local
public interface BLSessionLocal {
      public String sayHi(String name);
      public double currencyConvert(String currency,double amt);
}

--- File Remote-------------------------------------------------------------
@Remote
public interface BLSessionRemote {
      public String sayHi(String name);
      public double currencyConvert(String currency,double amt);
}


        5.      จะเห0นว1าม Error เกด้วย Enterprise ขนท* BLSession.java (Concrete Class) ใหใช้ในการประกอ mouse วางท* Error
                                                    .
                eclipse จะบอกว1าให implement method ท* interface บงคบไว กรณนกด้วย Enterprise เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกท* บรรทด้วย Enterprise แรก
                Add Unimplemented Methods ด้วย Enterprise งรป




                                            รปที่  1.4 ที่ !าการ Implement source code ที่  concrete class : BLSession

        6.      ให Implement source code ส4าหรบ Business Method ทงสองด้วย Enterprise งน
                         public String sayHi(String name) {
                               return Hello  + name;
                          }

                           public double currencyConvertor(String currency, double amt) {
                               if (currency.equals(baht)) {
                                   return (amt / 35);
                               } else if (currency.equals(euro)) {
                                   return (amt * 2);
                               } else {
                                   return 0;
                               }
                           }




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                    Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
9

1.3        ก รพัฒนฒนำ โปรแกรม Web Application

      โปรแกรม EJB จะเป0นส1 วนของ Business Logic เท1านน การพัฒนฒนาส1 วนของ Presentation จะตองใช้ในการประกอ
โปรแกรม Web Application หร)อ Java SE

                    ในขนตอนนจะพัฒนฒนาโปรแกรม Web Application เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ BLSession
ท*ช้ในการประกอ)*อ sayHi โด้วย Enterprise ยก4าหนด้วย Enterprise ให,ใช้ในการประกอส1 งพัฒนารามเตอร( String myName ไป Servlet ท*ช้ในการประกอ)*อ SayHiServlet
        1.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoWeb เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → Servlet
        2.      ก4าหนด้วย Enterprise  Package = controller
                Class Name = SayHiServlet




                                                                                      รปที่  1.5 สราง Servlet เพัฒนาโปรแกรม#อต$ดต%อกบ EJB3




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                       Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
10

        3. Set ให Web Project                                     รจก EJB Project โด้วย Enterprise ยคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* SessionBeanDemoWeb
                เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Build Path → Configure Build Path




                                                             รปที่  1.6 ที่ !าให้ Web Projec Web Project มองเห้ Web Projecน EJB Project

        4.      เพัฒนม Source code ในการเรยก EJB ท* Servlet โด้วย Enterprise ย Declare เป0น Instant Variable
                     *
                public class SayHiServlet extends HttpServlet {

                @EJB
                private BLSessionLocal blSession;
                ..........
                ..........
                ..........




        5.      ใหปรบปร'ง                  Source code ในเมธอด้วย Enterprise  processRequest ด้วย Enterprise งน

                protected void processRequest(HttpServletRequest request,
                                  HttpServletResponse response)
                                  throws ServletException, IOException
                {
                      request.setCharacterEncoding(TIS-620);
                      response.setContentType(TIS-620);
                      PrintWriter out = response.getWriter();
                      out.println(htmlbody);
                      out.println(blSession.sayHi(request.getParameter(myName)));
                      out.println(/body/html);
                      out.close();
                }




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
11

1.4        ก รทดสอบโปรแกรม

        1.      ท4าการ Add โปรแกรม SessionBeanDemo เขาส1 JBoss Application Server
        2.      ใส1 URL ของ Web Browser เป0น
           http://localhost:8080/SessionBeanDemoWeb/SayHiServlet?myName=Thana
        3. โปรแกรม Web Browser จะแสด้วย Enterprise งขอความ Hello Thana ออกมา




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
12


1.5                ก รพัฒนฒนำ โปรแกรม Desktop Application ติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wดติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wอกบ EJB 3.0

        เราสามารถท*จะเขยนโปรแกรม Desktop Application เพัฒน)*อท*จะเรยกใช้ในการประกอ EJB ในขนตอนนจะเป0นการ
พัฒนฒนาโปรแกรม Java SE เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ BLSession โด้วย Enterprise ยจะท4าการพัฒนฒนาโปรแกรมสอง
โปรแกรม โปรแกรมแรกค)อโปรแกรม Main.java จะเรยกเมธอด้วย Enterprise ท*ช้ในการประกอ)*อ sayHi จาก command prompt ส1 วน
โปรแกรมท*สองค)อโปรแกรม CurrencyConvertor.java จะเรยกเมธอด้วย Enterprise ท*ช้ในการประกอ)*อ currencyConvert โด้วย Enterprise ยก4าหนด้วย Enterprise ให
โปรแกรมนม GUI เพัฒน)*อให,ใช้ในการประกอปอนขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเพัฒน)*อก4าหนด้วย Enterprise สก'ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเงนแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะจ4านวนเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะมขนตอนการพัฒนฒนาด้วย Enterprise งน

             1.            คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* SessionBeanDemo เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → Application Client Module
                           ก4าหนด้วย Enterprise  Project Name = SessionBeanDemoClient
             2.            คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก check box เป0น Add project to an EAR เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก dropdown ช้ในการประกอ)*อ SessionBeanDemo




                                 รปที่  1.7 การเพัฒนาโปรแกรม$ม Enterprise Application Client เขาส% Enterprise Application Project




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                  Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
13


1.5.1           แกไข EJB Project (เพัฒน*ม Mapping Name)
                เพัฒน)*อให Application Client เรยกใช้ในการประกอ SessionBean ของ EJB ได้วย Enterprise 
                จะตอง Register ช้ในการประกอ)*อของ SessionBean เขาส1 Context หร)อเรยกว1าการ Mapping
                ไปท* SessionBeanDemoEJB
                ท* @Stateless ใหเพัฒนม วงเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ0บ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise  Ctrl+Space จะม hint มาให
                                                                                          *
                เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก mappedName แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวใส1 ช้ในการประกอ)*อท*ตองการ




                                  รปที่  1.8 การเพัฒนาโปรแกรม$มชื่อของ Session Bea#อของ Session Bean เขาส% Context ของ JBoss Application Server

1.5.2           การพัฒนฒนาโปรแกรม Main.java
                Implement Source code ของ Main.java ด้วย Enterprise งน
import           java.util.Hashtable;
import           javax.naming.Context;
import           javax.naming.InitialContext;
import           javax.naming.NamingException;
import           ejb.BLSessionRemote;

public class Main {

       public static void main(String[] args) throws NamingException {
           Context ctx = getJBossNamingContext();
           BLSessionRemote sb = (BLSessionRemote)ctx.lookup(SessionBeanForClient);
           String result = sb.sayHi(Thana);
           System.out.println(result);
       }

       public static Context getJBossNamingContext() throws NamingException{
           HashtableString, String env = new HashtableString, String();
           env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory);
           env.put(java.naming.provider.url, localhost:1099);
           return new InitialContext(env);
       }
}


        ท* Method getJBossNamingContext() พัฒนบว1ามการ Config ถ.ง host:port ของ Naming Service
(เป0นท*ๆเราจะเขาไปถามหา Session Bean ช้ในการประกอ)*อ “SessionBeanForClient”) เราจะตองหา port ของ Server ท*ม
EJB อย1 ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งท4าได้วย Enterprise โด้วย Enterprise ย double click ท* Server JBoss ด้วย Enterprise งรป



การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
14




                                             รปที่  1.9 การห้ Web Projecา JNDI                        port ของ Server ที่  EJB Project Deploy อยู่t  ˜A	HashtableString, String env = new Hashta%

                จากนนท4าการรน Application จะได้วย Enterprise ,ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศพัฒนธ(ค)อ Hello Thana print ออกมาท* Console




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                     Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
15


1.5.3           การพัฒนฒนาโปรแกรม CurrencyConvertor.java

                โปรแกรม Desktop Application จะมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกษณะด้วย Enterprise งรป โด้วย Enterprise ยจะใช้ในการประกอ GUI Designer (Jigloo) ในการพัฒนฒนา




                                                                                                        รปที่  1.10 GUI ของโปรแกรม CurrencyConvertor

        1.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise   SessionBeanDemoClient เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก appClientModule
                → New → Other... → GUI Forms → Swing → Jframe
                จะมได้วย Enterprise อะลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ0อกข.นมา ก4าหนด้วย Enterprise  Package = swing แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Class Name = CurrencyConvertor




                                                                                                                     รปที่  1.11 สราง Swing GUI

การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                       Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
16

        2.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กท* JFrame แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวเปลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ*ยน property ท*ช้ในการประกอ)*อ   title เป0น Currency Convertor




                                                                                                                                                                                                                    รปที่  1.12 สราง Swing GUI
        3.      เพัฒนม JPanel แบบ Form
                     *




                                                                                                                                                                                                                    รปที่  1.13 สราง Swing GUI

        4.


การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                                                                Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
17

        5.      ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศากไอคอน Label ใน Swing Controls จาก Table Compoments                                                                                                                                                                                         Drag  Drop ไปท*หนาต1าง
                ด้วย Enterprise งรป แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวก4าหนด้วย Enterprise ค1า




                                                                                                        รปที่  1.14 การวาง Label ใน Components Windows

        6.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก jLabel แต1ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะตว แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเปลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ*ยน property ท*ช้ในการประกอ)*อ text เป0น currency, amount แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ value
        7.      ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศากไอคอน Combo Box มาในต4าแหน1งทางขวาม)อของ currency จากนนใน property ใหเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก model
                โด้วย Enterprise ยก4าหนด้วย Enterprise  Item สองรายการใหเป0น baht แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ euro ด้วย Enterprise งรป




                                                                                                                      รปที่  1.15 การก!าห้ Web Projecนดค%า item ของ ComboBox


การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                                                                Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
18

        8.              ท4าการ implement sourcecode ด้วย Enterprise งรป




        9. Implement source code กรณท*มการกด้วย Enterprise ป'1ม Calculate โด้วย Enterprise ยแกไข source code ด้วย Enterprise งน

                        private void jButton1ActionPerformed(ActionEvent evt) {
                        System.out.println(jButton1.actionPerformed, event=+evt);
                           try {
                               Context ctx = getJBossNamingContext();
                               BLSessionRemote obj = (BLSessionRemote) ctx.lookup(SessionBeanForClient);
                               int index = jComboBox1.getSelectedIndex();
                               String currency = (String) jComboBox1.getItemAt(index);
                               String amtStr = jTextField1.getText();
                               double amt = Double.parseDouble(amtStr);
                               double usDollar = obj.currencyConvertor(currency, amt);
                               jTextField2.setText(usDollar + );
                            } catch (Exception ex) {
                               ex.printStackTrace();
                            }
                        }

                        public Context getJBossNamingContext() throws NamingException{
                           HashtableString, String env = new HashtableString, String();
                           env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory);
                           env.put(java.naming.provider.url, localhost:1099);
                           return new InitialContext(env);
                        }


        10. ป'1ม Exit ท4าเช้ในการประกอ1นเด้วย Enterprise ยวกบป'1ม Calculate
                        private void jButton2ActionPerformed(ActionEvent evt) {
                               System.out.println(jButton2.actionPerformed, event= + evt);
                               System.exit(0);
                        }
        11. ทด้วย Enterprise สอบโปรแกรมโด้วย Enterprise ยการเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกสก'ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะปอนจ4านวนเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise ป'1ม Calculate




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                                                          Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
19

Source Code ท* Jigloo สรางข.นมา แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะท*เราปรบปร'งทงหมด้วย Enterprise 
package swing;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;

import ejb.BLSessionRemote;

import     java.awt.BorderLayout;
import     java.awt.event.ActionEvent;
import     java.awt.event.ActionListener;
import     java.util.Hashtable;

import     javax.naming.*;
import     javax.swing.ComboBoxModel;
import     javax.swing.DefaultComboBoxModel;
import     javax.swing.JButton;
import     javax.swing.JComboBox;
import     javax.swing.JLabel;
import     javax.swing.JPanel;
import     javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import org.apache.bsf.Main;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
 * Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose
 * whatever) then you should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details. Use of Jigloo implies
 * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
 * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
 * ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class CurrencyConverter extends javax.swing.JFrame {
          private JPanel jPanel1;
          private JLabel jLabel3;
          private JButton jButton1;
          private JComboBox jComboBox1;
          private JButton jButton2;
          private JTextField jTextField2;
          private JTextField jTextField1;
          private JLabel jLabel2;
          private JLabel jLabel1;

                /**
                  * Auto-generated main method to display this JFrame
                  */
                public static void main(String[] args) {
                           SwingUtilities.invokeLater(new Runnable() {
                                     public void run() {
                                               CurrencyConverter inst = new CurrencyConverter();
                                               inst.setLocationRelativeTo(null);
                                               inst.setVisible(true);
                                     }
                           });
                }

                public CurrencyConverter() {
                          super();
                          initGUI();
                }

                private void initGUI() {
                          try {
                                    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
                                    {
                                              jPanel1 = new JPanel();
                                              FormLayout jPanel1Layout = new FormLayout(
                                                                  53dlu, 42dlu, 41dlu, 44dlu,
                                                                  max(p;5dlu), max(p;5dlu), max(p;5dlu), max(p;5dlu));
                                              getContentPane().add(jPanel1, BorderLayout.CENTER);
                                              jPanel1.setLayout(jPanel1Layout);
                                              jPanel1.setPreferredSize(new java.awt.Dimension(182, 104));
                                              {
                                                        jLabel1 = new JLabel();
                                                        jPanel1.add(jLabel1, new CellConstraints(
                                                                            1, 1, 1, 1, default, default));
                                                        jLabel1.setText(Currency);
                                              }
                                              {
                                                        jLabel2 = new JLabel();
                                                        jPanel1.add(jLabel2, new CellConstraints(
                                                                            1, 2, 1, 1, default, default));
                                                        jLabel2.setText(Amount);
                                              }
                                              {
                                                        jLabel3 = new JLabel();
                                                        jPanel1.add(jLabel3, new CellConstraints(
                                                                            1, 3, 1, 1, default, default));
                                                        jLabel3.setText(Value [Dollars] );
                                              }
                                              {
                                                        jTextField1 = new JTextField();
                                                        jPanel1.add(jTextField1, new CellConstraints(
                                                                            2, 2, 1, 1, default, default));
                                              }
                                              {
                                                        jTextField2 = new JTextField();



การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                    Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
20
                                                                   jPanel1.add(jTextField2, new CellConstraints(
                                                                                       2, 3, 1, 1, default, default));
                                                               }
                                                               {
                                                                   jButton1 = new JButton();
                                                                   jPanel1.add(jButton1, new CellConstraints(
                                                                                       1, 4, 1, 1, default, default));
                                                                   jButton1.setText(Calculate);
                                                                   jButton1.addActionListener(new ActionListener() {
                                                                             public void actionPerformed(ActionEvent evt) {
                                                                                       jButton1ActionPerformed(evt);
                                                                             }
                                                                   });
                                                               }
                                                               {
                                                                   jButton2 = new JButton();
                                                                   jPanel1.add(jButton2, new CellConstraints(
                                                                                       2, 4, 1, 1, default, default));
                                                                   jButton2.setText(Exit);
                                                                   jButton2.addActionListener(new ActionListener() {
                                                                             public void actionPerformed(ActionEvent evt) {
                                                                                       jButton2ActionPerformed(evt);
                                                                             }
                                                                   });
                                                               }
                                                               {
                                                                   ComboBoxModel jComboBox1Model =
                                                                             new DefaultComboBoxModel(
                                                                                                 new String[] { baht, euro });
                                                                   jComboBox1 = new JComboBox();
                                                                   jPanel1.add(getJComboBox1(), new CellConstraints(2, 1, 1, 1, default, default));
                                                                   jComboBox1.setModel(jComboBox1Model);
                                                    }
                                          }
                                          pack();
                                } catch (Exception e) {
                                          e.printStackTrace();
                                }
                }

                private void jButton2ActionPerformed(ActionEvent evt) {
                        System.out.println(jButton2.actionPerformed, event= + evt);
                        System.exit(0);
                }
                public JComboBox getJComboBox1() {
                          return jComboBox1;
                }

                private void jButton1ActionPerformed(ActionEvent evt) {
                        System.out.println(jButton1.actionPerformed, event=+evt);
                       try {

                                   Context ctx = getJBossNamingContext();
                                   BLSessionRemote obj = (BLSessionRemote) ctx.lookup(SessionBeanForClient);
                                   int index = jComboBox1.getSelectedIndex();
                                   String currency = (String) jComboBox1.getItemAt(index);
                                   String amtStr = jTextField1.getText();
                                   double amt = Double.parseDouble(amtStr);
                                   double usDollar = obj.currencyConvertor(currency, amt);
                                   jTextField2.setText(usDollar + );
                              } catch (Exception ex) {
                                   ex.printStackTrace();
                              }
                }

                public Context getJBossNamingContext() throws NamingException{
                        HashtableString, String env = new HashtableString, String();
                        env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory);
                        env.put(java.naming.provider.url, localhost:1099);
                        return new InitialContext(env);
                }
}




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
21


                              Exercise 2 Stateful Session Bean Using EJB 3.0

เน#อห้ Web Projecาที่ ตองศึกษาก่อน   Ses-กษาก%อน          Session Bean Using EJB 3.0

                      แบบ/.กหด้วย Enterprise ในบทนเป0นการพัฒนฒนา Stateful Session Bean ส4าหรบ Shopping Cart โด้วย Enterprise ยใช้ในการประกอ EJB 3.0
โด้วย Enterprise ยก4าหนด้วย Enterprise ให Session Bean มช้ในการประกอ)*อเป0น Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะม Business Methods สามเมธอด้วย Enterprise ค)อ
                             ●         void putItem(String itemId, int quantity)
                             ●         void removeItem(String itemId)
                             ●         Hashtable getItems()

                   นอกจากนจะม เมธอด้วย Enterprise เท*ถกเรยกจาก @PostConstruct ค)อ
                             ●         void initialize()

                   แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Bean Class จะมตวแปรของออปเจ0ค (instance variable) สองตวค)อ
                             ●         String customerId
                             ●         Hashtable cart

                  ในแบบ/.กหด้วย Enterprise นเราจะเขยน Java Servlet ข.นมาเพัฒน)*อเรยกใช้ในการประกอ Cart Session Bean ท*ช้ในการประกอ)*อ
CartManager.java เพัฒน)*อใช้ในการประกอในการเพัฒน*ม/ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการออกจาก Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ เพัฒน)*อแสด้วย Enterprise งรายการท*อย1ใน Cart โด้วย Enterprise ย,ท*เรยก
                                                                                                                                  1
ใช้ในการประกอ CartManager จะตองส1 งพัฒนารามเตอร(ท*ช้ในการประกอ)*อ action มาเพัฒน)อระบ'วาตองการท4าอะไรกบ Cart โด้วย Enterprise ยม action ด้วย Enterprise งน
                     ● add เพัฒน)*อเพัฒน*มรายการลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart

                     ● remove เพัฒน)*อลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการออกจาก Cart

                     ● list เพัฒน)*อแสด้วย Enterprise งรายการใน Cart


                   [หมายเหต' ถาเราสราง Servlet หลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศายๆไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(เพัฒน)*อท4าหนาท*ต1างกน เช้ในการประกอ1น AddCartServlet,
RemoveCartServlet แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ ListCartServlet โปรแกรม Stateful Session Bean จะสราง bean instance
ส4าหรบ Servlet แต1ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะตวท4าใหใช้ในการประกอ Session ท*ต1างกน]

ขนตอนในการพัฒนฒนาโปรแกรม
   1. พัฒนฒนา Stateful Session Bean
   2. พัฒนฒนาโปรแกรม CartManager.java
   3. พัฒนฒนาโปรแกรม CartList.java

2.1           ก รพัฒนฒนำ โปรแกรม Stateful Session Bean

       แบบ/.กหด้วย Enterprise นจะใช้ในการประกอโปรเจ0คเด้วย Enterprise ม (SessionBeanDemo) ท*สรางในแบบ/.กโปรแกรม Session Bean Using
EJB 3.0 ในการสราง Stateful Session Bean โด้วย Enterprise ยมขนตอนในการพัฒนฒนาโปรแกรมนได้วย Enterprise ด้วย Enterprise งน

การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                           Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
22


        1.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoEJB → New → Session Bean(EJB 3.x)
        2.      ก4าหนด้วย Enterprise  Java package = ejb , Class Name = Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ State Type = Stateful




                                                               รปที่  2.1 การก!าห้ Web Projecนดค%าของ Cart Stateful Session Bean

        3.      ท4าการ Add Business Method โด้วย Enterprise ยเร*มจากสราง Signature Method ใน Interface CartLocal แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ
                CartRemote ด้วย Enterprise งน

                Declare Method Signature 3 methods ท* Interface CartLocal , CartRemote

                                Method Name ช้ในการประกอ)*อ putItem
                                 Input Parameter 1 = itemId เป0น String
                                 Input Parameter 2 = quantity เป0น int

                                 Method Name ช้ในการประกอ)*อ removeItem
                                 Input Parameter = itemId                       เป0น String

                                Method Name ช้ในการประกอ)*อ getItems
                                Return Type : Hashtable




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                             Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
23

        4.      จะได้วย Enterprise  Business Method อย1ใน Interface ทงสอง (local,remote) 3                                                    Methods ค)อ
                void putItem(String itemId , int quantity);
                void removeItem(String itemId);
                Hashtable getItems();
                Implement source code ตาม Listing 2.1 แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ 2.2

Listing 2.1 โปรแกรม CartLocal.java
                package ejb;
                import java.util.Hashtable;
                import javax.ejb.Local;

                @Local
                public interface CartLocal {

                                void putItem(String itemId, int quantity);
                                void removeItem(String itemId);
                                Hashtable getItems();

                }
Listing 2.2 โปรแกรม CartRemote.java
                package ejb;

                import java.util.Hashtable;

                import javax.ejb.Remote;

                @Remote
                public interface CartRemote {

                                void putItem(String itemId, int quantity);
                                void removeItem(String itemId);
                                Hashtable getItems();

                }




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                              Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
24

        จากนน Fix Error ของ Class Cart.java โด้วย Enterprise ย Implement source code ตาม Listing 2.3 ด้วย Enterprise งน
        5.
Listing 2.3 โปรแกรม Cart.java
                package ejb;

                import java.util.Hashtable;
                import javax.annotation.PostConstruct;
                import javax.ejb.Stateful;

                @Stateful
                public class Cart implements CartRemote, CartLocal {
                      HashtableString, Integer cart;

                                @PostConstruct
                                public void initialize(){
                                      cart = new HashtableString, Integer();
                                }

                                @Override
                                public void putItem(String itemId, int quantity) {
                                      cart.put(itemId, quantity);
                                }

                                @Override
                                public void removeItem(String itemId) {
                                      cart.remove(itemId);
                                }

                                @Override
                                public Hashtable getItems() {
                                      return cart;
                                }
                }


2.2        ก รพัฒนฒนำ โปรแกรม CartManager.java

      โปรแกรม CartManager.java เป0นโปรแกรม Java Servlet เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ Cart
Bean ในการเพัฒน*มรายการลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart โด้วย Enterprise ยก4าหนด้วย Enterprise ให,ใช้ในการประกอส1 งพัฒนารามเตอร(มายงโปรแกรมด้วย Enterprise งน
         ● itemId ค)อหมายเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศขของรายการสนคา

         ● quantity ค)อจ4านวนของรายการสนคา

         ● method ถามค1าเป0น add ค)อเพัฒนมรายการ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะถามค1าเป0น remove ค)อลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการ
                                                                                                                              *

                ช้ในการประกอ'ด้วย Enterprise ค4าสงต1างๆ ภายใน CartManager อธบายได้วย Enterprise ด้วย Enterprise งน
                                                 *

        1.      ประกาศตวแปร cart เป0นช้ในการประกอนด้วย Enterprise  CartLocal โด้วย Enterprise ยใช้ในการประกอ annotation ท*ช้ในการประกอ)*อ @EJB ด้วย Enterprise งน
                                @EJB
                                private CartLocal cart;




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                         Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
25

        2.      ค4าสงอ1านค1าพัฒนารามเตอร(ต1างๆ
                                  *
                โด้วย Enterprise ยก4าหนด้วย Enterprise ใหมพัฒนารามเตอร(ส1ง,1านมาจาก request ค)อ action, item แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ quantity โด้วย Enterprise ยมค4าสงด้วย Enterprise งน
                                                                                                                                                                                                           *
                                   String action = request.getParameter(action);
                                   String item = request.getParameter(item);
                                   String quantity = request.getParameter(quantity);
                                   cart.putItem(item, Integer.parseInt(quantity));

        3.      ค4าสงการเรยก Enterprise Bean ตาม action ท*ต1างกนด้วย Enterprise งน
                    *
                if (action.equals(add)) {
                      cart.putItem(item, Integer.parseInt(quantity));
                } else if (action.equals(remove)) {
                      cart.removeItem(item);
                } else if (action.equals(list)) {
                      Hashtable items = cart.getItems();
                      ………
                }
                ขนตอนการพัฒนฒนา Class CartManager
        1.      เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกหนาต1าง Projects แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท*โหนด้วย Enterprise  SessionBeanDemoWeb
                จากนนเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกค4าสง New → Servlet
                                                                                         *
                ก4าหนด้วย Enterprise  Package = controller , Class Name = CartManager
        2.      ในหนาต1าง Editor ใหเพัฒน*ม Source code ในการเรยก EJB ด้วย Enterprise งน
                ประกาศ instant variable เป0นช้ในการประกอนด้วย Enterprise  CartLocal เพัฒนราะเราจะส)*อสารกบ EJB ,1าน Interface CartLocal
                                     @EJB
                                     private CartLocal cart;

        3. Implement source code ของ Method processRequest( ) ด้วย Enterprise งน
Listing 2.4 โปรแกรม CartManager.java
package controller;

import           java.io.IOException;
import           java.io.PrintWriter;
import           java.util.Enumeration;
import           java.util.Hashtable;

import           javax.ejb.EJB;
import           javax.servlet.ServletException;
import           javax.servlet.http.HttpServlet;
import           javax.servlet.http.HttpServletRequest;
import           javax.servlet.http.HttpServletResponse;

import ejb.CartLocal;

public class CartManager extends HttpServlet {
       private static final long serialVersionUID = 1L;

                protected void doGet(HttpServletRequest request,
                              HttpServletResponse response) throws ServletException, IOException {
                       processRequest(request, response);
                }

                protected void doPost(HttpServletRequest request,
                              HttpServletResponse response) throws ServletException, IOException {
                       processRequest(request, response); }


การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                       Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
26

                @EJB
                privateCartLocal cart;

                protected void processRequest(HttpServletRequest request,
                             HttpServletResponse response) throws ServletException, IOException {

                                                  request.setCharacterEncoding(TIS-620);
                                                  response.setContentType(TIS-620);
                                                  PrintWriter out = response.getWriter();

                                                  String action = request.getParameter(action);
                                                  String item = request.getParameter(item);
                                                  String quantity = request.getParameter(quantity);

                                                  out.println(htmlbodyh1Cart Manager/h1);

                                                  if (action.equals(add)) {
                                                         cart.putItem(item, Integer.parseInt(quantity));
                                                  } else if (action.equals(remove)) {
                                                         cart.removeItem(item);
                                                  } else if (action.equals(list)) {
                                                         Hashtable items = cart.getItems();
                                                         Enumeration itemNames = items.keys();
                                                         while (itemNames.hasMoreElements()) {
                                                                String itemId = (String) itemNames.nextElement();
                                                                out.println(Item id:  + itemId +  Quantity : 
                                                                             + items.get(itemId));
                                                                out.println(BR);
                                                         }
                                                  }
                                                  out.println(/body/html);
                }
}


2.3        ก รทดสอบโปรแกรม

        1.      ท4าการ Publish เพัฒน)*อใหท'ก Project ท4าการ Synchronized กน




                                                               รปที่  2.2 การ Publish เพัฒนาโปรแกรม#อ Synchronized Project ใน Enterprise Application

        2.      ท4าการใส1 รายการโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น
        http://localhost:8080/SessionBeanDemoWeb/CartManager?action=additem=125quantity=3
               ท4าการใส1 รายการเพัฒน*มเตมโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น
        http://localhost:8080/SessionBeanDemoWeb/CartManager?action=additem=123quantity=2
        3.      แสด้วย Enterprise งรายการใน Cart โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL เป0น
        http://localhost:8080/SessionBeanDemoWeb/CartManager?action=list

        4.      ทด้วย Enterprise ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศองลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น
        http://localhost:8080/SessionBeanDemoWeb/CartManager?action=removeitem=123

        5.      แสด้วย Enterprise งรายการใน Cart ใหม1โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL เป0น
       http://localhost:8080/SessionBeanDemoWeb/CartManager?action=list


การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                                                            Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
27


                                                                                                  Exercise 3 Entity Class (JPA)

        แบบ/.กหด้วย Enterprise ในบทนเป0นการพัฒนฒนาโปรแกรม Enterprise Java Bean (EJB) โด้วย Enterprise ยจะเป0นการพัฒนฒนา
โปรแกรมตด้วย Enterprise ต1อกบฐานขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ MySQL โด้วย Enterprise ยใช้ในการประกอ EJB3.0 บน JBoss Application Server จะประกอบด้วย Enterprise วย
Entity Class ท*เช้ในการประกอ)*อมโยงกบตารางท*ช้ในการประกอ)*อ books แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Session Bean เพัฒน)*อใช้ในการประกอในการจด้วย Enterprise การเพัฒน*ม แกไข แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ
ใน table books ได้วย Enterprise 

ขนตอนในการพัฒนาโปรแกรมฒนาโปรแกรม
   1. สราง Enterprise Application Project
   2. พัฒนฒนา Entity Class
   3. พัฒนฒนา Session Bean
   4. พัฒนฒนา Web Application


3.1             ก รสร ง Enterprise Application Project
                  สราง Enterprise Application Project โด้วย Enterprise ยม EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module อย1ภายใน Project
              1. เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกเมน File → New → Enterprise Application Project
                  ก4าหนด้วย Enterprise  Project Name = BookApp
              2. สราง Module ใหม1




                                                                                        รปที่  3.1 สราง Module EJB แล็อกการสร้าง Sะ Web ใน Enterprise Application


การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                                                                            Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
28

3.2         ก ร Config ให้ Project ใช Project ใช้งาน JPA เพื่อเชื่อมต่อกง นำ JPA เพัฒนอเช้งาน JPA เพื่อเชื่อมต่อกอมติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wอกบ Database ได

                 Java EE 5 จะใช้ในการประกอคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาสประเภท Entity เพัฒน)*อเป0นออปเจ0คท*สอด้วย Enterprise คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศองกบตารางในฐานขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ ในท*นเราจะ
สราง Entity Class ท*ช้ในการประกอ)*อ Books.java จากตารางท*ช้ในการประกอ)*อ books ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งมการสรางมาก1อนแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศว โด้วย Enterprise ยมขนตอนการพัฒนฒนา
โปรแกรมนมด้วย Enterprise งน

        1. Copy EclipseLink , MySQLConnection (.jar file) ไปท* %JBOSS_HOMEcommonlib
        2.       คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* BookAppEJB เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Build path → Configure Build path...
        3.       เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Project Facets → JPA ท4าการ Config ด้วย Enterprise งรป




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                               Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
29




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
30




                                                     รปที่  3.2 Configuration ส%วนของ EclipseLink ใน EJB Project

        4.      สราง JNDI DataSource ให JBoss (คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศายกบการเพัฒน*ม file context.xml ใน Tomcat6)
                เปด้วย Enterprise  Folder $JBOSS_HOMEdocsexamplesjca แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศว copy file mysql-ds.xml ไปท*
                $JBOSS_HOMEserverdefaultdeploy


        5.      ท4าการ config file mysql-ds.xml ด้วย Enterprise งรป




                                                 รปที่  3.3 Config      JNDI Context               ให้ Web Projec JBoss

การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                            Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
31

        6. Config persistence.xml ใน BookAppEJB เพัฒน)*อให JPA ใช้ในการประกอ Database ท*ระบ'




                                                                                                รปที่  3.4 Config                            persistence.xml


        7.      ท4าการเพัฒน*ม JVM Arguments -Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed




                                                                                                รปที่  3.5 Config                            persistence.xml


        8. Add (Deploy) BookApp                          ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศง JBoss แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะท4าการ Start JBoss Application Server
                Monitor ด้วย Enterprise  log ท* Console ตองไม1พัฒนบ ERROR



การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                       Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
32

3.3        ก รพัฒนฒนำ โปรแกรม Entity Class
             สราง Entity Classes โด้วย Enterprise ย คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* BookAppEJB → New → Entities from Tables




                                                                                               รปที่  3.6 แสดงการสราง Entity Class

                จะได้วย Enterprise  Entity Class ช้ในการประกอ)*อ Books.java ท*ม Getter/Setter ของท'ก Field ใน table books
                เพัฒน*มส1 วนของ statement การ Query ขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศไปท*บรรทด้วย Enterprise ด้วย Enterprise านลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1างของ @Table(name = books) ด้วย Enterprise งน
                @NamedQuery (name = Books.findByIsbn,
                 query = SELECT b FROM Books b WHERE b.isbn = :isbn)




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                         Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
33

Listing 3.1 โปรแกรม Books.java
package entity;
import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name=books)
@NamedQuery (name = Books.findByIsbn,
                  query = SELECT b FROM Books b WHERE b.isbn = :isbn)

public class Books implements Serializable {
      private static final long serialVersionUID = 1L;

                @Id
                @Column(name=ISBN)
                private String isbn;

                @Column(name=AUTHOR)
                private String author;

                @Column(name=PRICE)
                private float price;

                @Column(name=TITLE)
                private String title;

                public String getIsbn() {
                      return this.isbn;
                }

                public void setIsbn(String isbn) {
                      this.isbn = isbn;
                }

                public String getAuthor() {
                      return this.author;
                }

                public void setAuthor(String author) {
                      this.author = author;
                }

                public float getPrice() {
                      return this.price;
                }

                public void setPrice(float price) {
                      this.price = price;
                }

                public String getTitle() {
                      return this.title;
                }

                public void setTitle(String title) {
                      this.title = title;
                }

}




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0   Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
34

3.4        ก รพัฒนฒนำ โปรแกรม Session Bean

       โปรแกรม EJB จะใช้ในการประกอ Session Bean ในการตด้วย Enterprise ต1อกบโปรแกรมอ)*นๆ ภายนอก EJB Container โด้วย Enterprise ย
โปรแกรมเหลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1านนจะตด้วย Enterprise ต1อกบ Entity Class โด้วย Enterprise ย,1าน Session Bean แบบ/.กหด้วย Enterprise นจะสราง Session Bean ท*ช้ในการประกอ)*อ
BooksFacade.java ท*ม Business method ในการ เรยกด้วย Enterprise ขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศของตารางท*ช้ในการประกอ)*อ books โด้วย Enterprise ยใช้ในการประกอ Entity Class ช้ในการประกอ)*อ
Books.java แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ EntityManager โด้วย Enterprise ยจะมขนตอนการพัฒนฒนาด้วย Enterprise งน


        1.      คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise  BookAppEJB เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → SessionBean (EJB 3.x)




                                                                                                       รปที่  3.7 แสดงการสราง Session Bean
        2.      ก4าหนด้วย Enterprise  Package = sb
                Class name = BookFacade
                eclipse จะสราง Interface BookFacadeLocal.java ให
        3.      เพัฒนม Signature method ท* interface ของการคนหาหนงส)อ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ รบช้ในการประกอ)*อ String isbn เพัฒน)*อไปประมวลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ,ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ
                     *
                  Books find(String isbn);




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                                        Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
35

Listing 3.2 โปรแกรม BookLocal.java
package sb;
import javax.ejb.Local;

import entity.Books;

@Local
public interface BookFacadeLocal {
      Books find(String isbn);
}



          4. Fix Error ท* class BookFacade.java implements concrete class
                    โด้วย Enterprise ยระบ'ช้ในการประกอ)*อ JPA ท*ใช้ในการประกอค)อ BookAppEJB แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวใช้ในการประกองานโด้วย Enterprise ยส1 ง Books.class (Books Entity Class)
                    ไปให entity manager → em.find(Books.class, id);

Listing 3.3 โปรแกรม BookFacade.java
package sb;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import entity.Books;

@Stateless
public class BookFacade implements BookFacadeLocal {

                    @PersistenceContext(unitName = BookAppEJB)
                    private EntityManager em;

                    @Override
                    public Books find(String isbn) {
                    return em.find(Books.class, isbn);
                    }
}


3.5           ก รพัฒนฒนำ โปรแกรม Web Application

       โปรแกรม EJB จะเป0นส1 วนของ Business Logic เท1านน การพัฒนฒนาส1 วนของ Presentation จะตองใช้ในการประกอ
โปรแกรม Web Application (หร)อ Java SE) แบบ/.กหด้วย Enterprise นจะพัฒนฒนาโปรแกรม Web Application เพัฒน)*อให,ใช้ในการประกอ
ปอน isbn ของหนงส)อในหนาเว0บ findBook.html แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวโปรแกรมจะเรยกโปรแกรม Servlet ท*ช้ในการประกอ)*อ
ShowBook.java เพัฒน)*อแสด้วย Enterprise งรายลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเอยด้วย Enterprise ของหนงส)อด้วย Enterprise งกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1าวออกมา โด้วย Enterprise ยมขนตอนการพัฒนฒนาด้วย Enterprise งน




การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0                                                                                              Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss
Java EE Programming [EJB 3.0 and JPA] Using  Eclipse and JBoss

Más contenido relacionado

La actualidad más candente

็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...IMC Institute
 
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforiaการสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
การสร้างสื่อ AR Augmented Reality ด้วย Unity + VuforiaDr.Kridsanapong Lertbumroongchai
 
การสร้าง Apps for Android ด้วย MIT App Inventor
การสร้าง Apps for Android ด้วย MIT App Inventorการสร้าง Apps for Android ด้วย MIT App Inventor
การสร้าง Apps for Android ด้วย MIT App InventorSomchart Phaeumnart
 
Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5Thanachart Numnonda
 
เอกสารประกอบการอบรม Adroidpdf
เอกสารประกอบการอบรม Adroidpdfเอกสารประกอบการอบรม Adroidpdf
เอกสารประกอบการอบรม AdroidpdfWeerachat Martluplao
 
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vistaการสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D VistaDr.Kridsanapong Lertbumroongchai
 
Course lap
Course lapCourse lap
Course lapkruood
 
งานกลุ่ม เรื่อง You tube
งานกลุ่ม เรื่อง You tubeงานกลุ่ม เรื่อง You tube
งานกลุ่ม เรื่อง You tubeGuDream Saicheua
 
Java Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeansJava Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeansSoftware Park Thailand
 
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTubeการสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTubeDr.Kridsanapong Lertbumroongchai
 
หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1Manop Kongoon
 
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventorใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventorNattapon
 

La actualidad más candente (16)

็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
 
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforiaการสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
 
การสร้าง Apps for Android ด้วย MIT App Inventor
การสร้าง Apps for Android ด้วย MIT App Inventorการสร้าง Apps for Android ด้วย MIT App Inventor
การสร้าง Apps for Android ด้วย MIT App Inventor
 
สอนออนไลน์ด้วย OBS Studio
สอนออนไลน์ด้วย OBS Studioสอนออนไลน์ด้วย OBS Studio
สอนออนไลน์ด้วย OBS Studio
 
Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5Java Web Programming Using NetBeans 6.5
Java Web Programming Using NetBeans 6.5
 
ม.6 05 แผนการจัดการเรียนรู้ที่ 18 23
ม.6  05 แผนการจัดการเรียนรู้ที่ 18 23ม.6  05 แผนการจัดการเรียนรู้ที่ 18 23
ม.6 05 แผนการจัดการเรียนรู้ที่ 18 23
 
เอกสารประกอบการอบรม Adroidpdf
เอกสารประกอบการอบรม Adroidpdfเอกสารประกอบการอบรม Adroidpdf
เอกสารประกอบการอบรม Adroidpdf
 
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vistaการสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
 
คู่มือ Courselab
คู่มือ Courselabคู่มือ Courselab
คู่มือ Courselab
 
Course lap
Course lapCourse lap
Course lap
 
คู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLabคู่มือการใช้งานโปรแกรม CourseLab
คู่มือการใช้งานโปรแกรม CourseLab
 
งานกลุ่ม เรื่อง You tube
งานกลุ่ม เรื่อง You tubeงานกลุ่ม เรื่อง You tube
งานกลุ่ม เรื่อง You tube
 
Java Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeansJava Web Services and SOA Using GlassFish openESB and NetBeans
Java Web Services and SOA Using GlassFish openESB and NetBeans
 
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTubeการสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
 
หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1หนังสือ Yii Framework Application Workshop เล่ม 1
หนังสือ Yii Framework Application Workshop เล่ม 1
 
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventorใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
 

Destacado

ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014IMC Institute
 
๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App EngineIMC Institute
 
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using  Eclipse and TomcatJava Web Programming (JSP/Servlet) Using  Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using Eclipse and TomcatIMC Institute
 
JEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application DeploymentJEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application DeploymentDanairat Thanabodithammachari
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 

Destacado (12)

ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
 
๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine๋Java Web Programming on Cloud Computing using Google App Engine
๋Java Web Programming on Cloud Computing using Google App Engine
 
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using  Eclipse and TomcatJava Web Programming (JSP/Servlet) Using  Eclipse and Tomcat
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
 
JEE Programming - 05 JSP
JEE Programming - 05 JSPJEE Programming - 05 JSP
JEE Programming - 05 JSP
 
JEE Programming - 01 Introduction
JEE Programming - 01 IntroductionJEE Programming - 01 Introduction
JEE Programming - 01 Introduction
 
JEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application DeploymentJEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application Deployment
 
JEE Programming - 02 The Containers
JEE Programming - 02 The ContainersJEE Programming - 02 The Containers
JEE Programming - 02 The Containers
 
JEE Programming - 06 Web Application Deployment
JEE Programming - 06 Web Application DeploymentJEE Programming - 06 Web Application Deployment
JEE Programming - 06 Web Application Deployment
 
JEE Programming - 04 Java Servlets
JEE Programming - 04 Java ServletsJEE Programming - 04 Java Servlets
JEE Programming - 04 Java Servlets
 
JEE Programming - 07 EJB Programming
JEE Programming - 07 EJB ProgrammingJEE Programming - 07 EJB Programming
JEE Programming - 07 EJB Programming
 
JEE Programming - 03 Model View Controller
JEE Programming - 03 Model View ControllerJEE Programming - 03 Model View Controller
JEE Programming - 03 Model View Controller
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 

Similar a Java EE Programming [EJB 3.0 and JPA] Using Eclipse and JBoss

โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2fulk123
 
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”Justice MengKing
 
ผลงานนักศึกษาวิชาโครงงาน
ผลงานนักศึกษาวิชาโครงงานผลงานนักศึกษาวิชาโครงงาน
ผลงานนักศึกษาวิชาโครงงานAjBenny Pong
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์Mintra Pudprom
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์KaRn Tik Tok
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์Soldic Kalayanee
 
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc. โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc. Thanatchaporn Yawichai
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานAjBenny Pong
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานAjBenny Pong
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานAjBenny Pong
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานMintra Pudprom
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานKaRn Tik Tok
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานSoldic Kalayanee
 
โครงการอบรมการผลิตสื่อออนไลน์
โครงการอบรมการผลิตสื่อออนไลน์โครงการอบรมการผลิตสื่อออนไลน์
โครงการอบรมการผลิตสื่อออนไลน์tassanee chaicharoen
 

Similar a Java EE Programming [EJB 3.0 and JPA] Using Eclipse and JBoss (20)

โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
 
webprogramming eclipse-jsp
webprogramming eclipse-jspwebprogramming eclipse-jsp
webprogramming eclipse-jsp
 
ผลงานนักศึกษาวิชาโครงงาน
ผลงานนักศึกษาวิชาโครงงานผลงานนักศึกษาวิชาโครงงาน
ผลงานนักศึกษาวิชาโครงงาน
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
Book area
Book areaBook area
Book area
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
 
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
 
โครงงาน
โครงงานโครงงาน
โครงงาน
 
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc. โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
 
P5202240039
P5202240039P5202240039
P5202240039
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงาน
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงาน
 
รูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงานรูปเล่มวิชาโครงงาน
รูปเล่มวิชาโครงงาน
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
 
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งานใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
 
โครงการอบรมการผลิตสื่อออนไลน์
โครงการอบรมการผลิตสื่อออนไลน์โครงการอบรมการผลิตสื่อออนไลน์
โครงการอบรมการผลิตสื่อออนไลน์
 

Más de IMC Institute

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14IMC Institute
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019IMC Institute
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AIIMC Institute
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12IMC Institute
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital TransformationIMC Institute
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIMC Institute
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมIMC Institute
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon ValleyIMC Institute
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10IMC Institute
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationIMC Institute
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)IMC Institute
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง IMC Institute
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9 IMC Institute
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016IMC Institute
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger IMC Institute
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.orgIMC Institute
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgIMC Institute
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital TransformationIMC Institute
 

Más de IMC Institute (20)

นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14นิตยสาร Digital Trends ฉบับที่ 14
นิตยสาร Digital Trends ฉบับที่ 14
 
Digital trends Vol 4 No. 13 Sep-Dec 2019
Digital trends Vol 4 No. 13  Sep-Dec 2019Digital trends Vol 4 No. 13  Sep-Dec 2019
Digital trends Vol 4 No. 13 Sep-Dec 2019
 
บทความ The evolution of AI
บทความ The evolution of AIบทความ The evolution of AI
บทความ The evolution of AI
 
IT Trends eMagazine Vol 4. No.12
IT Trends eMagazine  Vol 4. No.12IT Trends eMagazine  Vol 4. No.12
IT Trends eMagazine Vol 4. No.12
 
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformationเพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
 
IT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to WorkIT Trends 2019: Putting Digital Transformation to Work
IT Trends 2019: Putting Digital Transformation to Work
 
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรมมูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
 
IT Trends eMagazine Vol 4. No.11
IT Trends eMagazine  Vol 4. No.11IT Trends eMagazine  Vol 4. No.11
IT Trends eMagazine Vol 4. No.11
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
บทความ The New Silicon Valley
บทความ The New Silicon Valleyบทความ The New Silicon Valley
บทความ The New Silicon Valley
 
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10นิตยสาร IT Trends ของ  IMC Institute  ฉบับที่ 10
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)The Power of Big Data for a new economy (Sample)
The Power of Big Data for a new economy (Sample)
 
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
 
IT Trends eMagazine Vol 3. No.9
IT Trends eMagazine  Vol 3. No.9 IT Trends eMagazine  Vol 3. No.9
IT Trends eMagazine Vol 3. No.9
 
Thailand software & software market survey 2016
Thailand software & software market survey 2016Thailand software & software market survey 2016
Thailand software & software market survey 2016
 
Developing Business Blockchain Applications on Hyperledger
Developing Business  Blockchain Applications on Hyperledger Developing Business  Blockchain Applications on Hyperledger
Developing Business Blockchain Applications on Hyperledger
 
Digital transformation @thanachart.org
Digital transformation @thanachart.orgDigital transformation @thanachart.org
Digital transformation @thanachart.org
 
บทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.orgบทความ Big Data จากบล็อก thanachart.org
บทความ Big Data จากบล็อก thanachart.org
 
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformationกลยุทธ์ 5 ด้านกับการทำ Digital Transformation
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
 

Java EE Programming [EJB 3.0 and JPA] Using Eclipse and JBoss

  • 1. 1 Hand-on Exercises การพัฒนฒนาโปรแกรม EJB 3.0 and JPA โดยใช้੼ Eclipse และ JBoss Assoc.Prof.Dr.Thanachart Numnonda Software Park Thailand and Asst Prof.Thanisa Kruawaisayawan King Mongkut's Institute of Technology Ladkrabang June 2011 การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 2. 2 บทนำ เอกสารนใช้ในการประกอในการประกอบการสอนวช้ในการประกอา Java 301 : EJB 3.0 ของหลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกสตร Mini Master of Java Technology คณะเทคโนโลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศยสารสนเทศ สถาบนพัฒนระจอมเกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาเจาค'ณทหารลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาด้วย Enterprise กระบง โด้วย Enterprise ยมจ'ด้วย Enterprise ประสงค(เพัฒน)*อให ,เรยนได้วย Enterprise เขาใจถ.งการพัฒนฒนาโปรแกรม Java Enterprise Application ท*ใช้ในการประกอ Enterprise Java Bean 3.0 แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Java Persistence API ทงนแบบ/.กหด้วย Enterprise นอางองกบเคร)*องม)อพัฒนฒนาโปรแกรมจาวา Eclipse แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ โปรแกรม JBoss Application Server thananum@gmail.com twitter.com/thanachart www.facebook.com/thanachart www.thaijavadev.com มถ'นายน 2554 การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 3. 3 สารบัญญ Exercise 1 Stateless Session Bean Using EJB 3.0................................................................................4 Exercise 2 Stateful Session Bean Using EJB 3.0...............................................................................21 Exercise 3 Entity Class (JPA).............................................................................................................26 Exercise 4 การพัฒนาJSP เพื่อเฒนา JSP เพัฒนาJSP เพื่อเอเรยกใช้ EJB 3.0 36x1King EJB 3.0.....................................................................................36 Exercise 5 JPA : Entity Relationships................................................................................................41 Exercise 6 JPA: Inheritance................................................................................................................60 Exercise 7 Message Driven Bean.......................................................................................................70 Exercise 8 EJB Security.....................................................................................................................75 Exercise 9 Using Java Persistence API in Visual Web JSF applications...........................................83 การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 4. 4 Exercise 1 Stateless Session Bean Using EJB 3.0 แบบ/.กหด้วย Enterprise นเป0นการพัฒนฒนาโปรแกรม Enterprise Java Bean (EJB) โด้วย Enterprise ยใช้ในการประกอ EJB 3.0 สราง Session Bean แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะแสด้วย Enterprise งตวอย1างการเรยกใช้ในการประกอ Session Bean จาก Web Application โด้วย Enterprise ยใช้ในการประกอ Java Servlet แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะจาก Desktop Application โด้วย Enterprise ยใช้ในการประกอ Java SE ขนตอนในการพัฒนาโปรแกรมฒนาโปรแกรม 1. สราง Enterprise Application Project 2. พัฒนฒนา Session Bean 3. พัฒนฒนา Web Application 4. พัฒนฒนา Desktop Application 1.1 ก รสร ง Enterprise Application Project สราง Project แบบ Enterprise Application ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งม EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module ภายในตว Project 1. สราง Project โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกเมน File → New → Enterprise Application Project ก4าหนด้วย Enterprise Project Name เป0น SessionBeanDemo 2. สราง Server ท*จะรน Click ท*ป'1ม New Runtime... ก4าหนด้วย Enterprise Directory ท*ม JBoss Application Server อย1 3. กด้วย Enterprise Next กด้วย Enterprise ป'1ม New Module... เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module กด้วย Enterprise Finish จนจบ Wizard การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 5. 5 รปที่ 1.1 การสราง Enterprise Application Project การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 6. 6 1.2 ก รพัฒนฒนำ โปรแกรม Session Bean โปรแกรม EJB จะใช้ในการประกอ Session Bean ในการตด้วย Enterprise ต1อกบโปรแกรมอ)*นๆ ภายนอก EJB Container โด้วย Enterprise ย Session Bean จะประกอบด้วย Enterprise วย Business Method ต1างๆ ในแบบ/.กหด้วย Enterprise จะสราง Session Bean ท*ช้ในการประกอ)*อ BLSession ท*ม Business method สองเมธอด้วย Enterprise ค)อ ● String sayHi(String name) ● double currencyConvert(String currency, double amt) โด้วย Enterprise ยเราสามารถท*จะพัฒนฒนาโปรแกรมนได้วย Enterprise ด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoEJB → New → Session Bean(EJB 3.x) 2. ก4าหนด้วย Enterprise Java package = ejb Class Name = BLSession State Type = Stateless Create Business Interface เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกทง Remote แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Local ด้วย Enterprise งรปท* 1.2 รปที่ 1.2 ไดอะล็อกการสร้าง Sอกการสราง Session Bean การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 7. 7 3. แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise Finish โปรแกรมจะสรางไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(ต1างๆ มาใหด้วย Enterprise งรป รปที่ 1.3 โครงสรางของไฟล็อกการสร้าง Sของ Session Bean 4. Declare Method Signature 2 methods ท* Interface BLSessionLocal , BLSessionRemote Method Name ช้ในการประกอ)*อ sayHi Return Type : String Input Parameter = name เป0น String Method Name ช้ในการประกอ)*อ currencyConvert Return Type : double Input Parameter 1 = currency เป0น String Input Parameter 2 = amt เป0น double ท4าไมตอก4าหนด้วย Enterprise Signature Method ใหกบ Interface? ม 2 กรณ ค)อ 1. ,เรยก EJB อย1บน Virtual Machine เด้วย Enterprise ยวกนกบ EJB ,เรยกจะใช้ในการประกองาน Method ท*ระบ'ใน Interface BLSessionLocal 2. ,เรยกอย1คนลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Virtual Machine หร)อคนลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเคร)อง * ,เรยกจะใช้ในการประกองาน Method ท*ระบ'ใน Interface BLSessionRemote การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 8. 8 Listing 1.1 ประกาศ Signature Method ท* Interface ทง Local แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Remote --- File Local-------------------------------------------------------------- @Local public interface BLSessionLocal { public String sayHi(String name); public double currencyConvert(String currency,double amt); } --- File Remote------------------------------------------------------------- @Remote public interface BLSessionRemote { public String sayHi(String name); public double currencyConvert(String currency,double amt); } 5. จะเห0นว1าม Error เกด้วย Enterprise ขนท* BLSession.java (Concrete Class) ใหใช้ในการประกอ mouse วางท* Error . eclipse จะบอกว1าให implement method ท* interface บงคบไว กรณนกด้วย Enterprise เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกท* บรรทด้วย Enterprise แรก Add Unimplemented Methods ด้วย Enterprise งรป รปที่ 1.4 ที่ !าการ Implement source code ที่ concrete class : BLSession 6. ให Implement source code ส4าหรบ Business Method ทงสองด้วย Enterprise งน public String sayHi(String name) { return Hello + name; } public double currencyConvertor(String currency, double amt) { if (currency.equals(baht)) { return (amt / 35); } else if (currency.equals(euro)) { return (amt * 2); } else { return 0; } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 9. 9 1.3 ก รพัฒนฒนำ โปรแกรม Web Application โปรแกรม EJB จะเป0นส1 วนของ Business Logic เท1านน การพัฒนฒนาส1 วนของ Presentation จะตองใช้ในการประกอ โปรแกรม Web Application หร)อ Java SE ในขนตอนนจะพัฒนฒนาโปรแกรม Web Application เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ BLSession ท*ช้ในการประกอ)*อ sayHi โด้วย Enterprise ยก4าหนด้วย Enterprise ให,ใช้ในการประกอส1 งพัฒนารามเตอร( String myName ไป Servlet ท*ช้ในการประกอ)*อ SayHiServlet 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoWeb เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → Servlet 2. ก4าหนด้วย Enterprise Package = controller Class Name = SayHiServlet รปที่ 1.5 สราง Servlet เพัฒนาโปรแกรม#อต$ดต%อกบ EJB3 การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 10. 10 3. Set ให Web Project รจก EJB Project โด้วย Enterprise ยคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* SessionBeanDemoWeb เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Build Path → Configure Build Path รปที่ 1.6 ที่ !าให้ Web Projec Web Project มองเห้ Web Projecน EJB Project 4. เพัฒนม Source code ในการเรยก EJB ท* Servlet โด้วย Enterprise ย Declare เป0น Instant Variable * public class SayHiServlet extends HttpServlet { @EJB private BLSessionLocal blSession; .......... .......... .......... 5. ใหปรบปร'ง Source code ในเมธอด้วย Enterprise processRequest ด้วย Enterprise งน protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(TIS-620); response.setContentType(TIS-620); PrintWriter out = response.getWriter(); out.println(htmlbody); out.println(blSession.sayHi(request.getParameter(myName))); out.println(/body/html); out.close(); } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 11. 11 1.4 ก รทดสอบโปรแกรม 1. ท4าการ Add โปรแกรม SessionBeanDemo เขาส1 JBoss Application Server 2. ใส1 URL ของ Web Browser เป0น http://localhost:8080/SessionBeanDemoWeb/SayHiServlet?myName=Thana 3. โปรแกรม Web Browser จะแสด้วย Enterprise งขอความ Hello Thana ออกมา การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 12. 12 1.5 ก รพัฒนฒนำ โปรแกรม Desktop Application ติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wดติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wอกบ EJB 3.0 เราสามารถท*จะเขยนโปรแกรม Desktop Application เพัฒน)*อท*จะเรยกใช้ในการประกอ EJB ในขนตอนนจะเป0นการ พัฒนฒนาโปรแกรม Java SE เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ BLSession โด้วย Enterprise ยจะท4าการพัฒนฒนาโปรแกรมสอง โปรแกรม โปรแกรมแรกค)อโปรแกรม Main.java จะเรยกเมธอด้วย Enterprise ท*ช้ในการประกอ)*อ sayHi จาก command prompt ส1 วน โปรแกรมท*สองค)อโปรแกรม CurrencyConvertor.java จะเรยกเมธอด้วย Enterprise ท*ช้ในการประกอ)*อ currencyConvert โด้วย Enterprise ยก4าหนด้วย Enterprise ให โปรแกรมนม GUI เพัฒน)*อให,ใช้ในการประกอปอนขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเพัฒน)*อก4าหนด้วย Enterprise สก'ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเงนแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะจ4านวนเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะมขนตอนการพัฒนฒนาด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* SessionBeanDemo เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → Application Client Module ก4าหนด้วย Enterprise Project Name = SessionBeanDemoClient 2. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก check box เป0น Add project to an EAR เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก dropdown ช้ในการประกอ)*อ SessionBeanDemo รปที่ 1.7 การเพัฒนาโปรแกรม$ม Enterprise Application Client เขาส% Enterprise Application Project การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 13. 13 1.5.1 แกไข EJB Project (เพัฒน*ม Mapping Name) เพัฒน)*อให Application Client เรยกใช้ในการประกอ SessionBean ของ EJB ได้วย Enterprise จะตอง Register ช้ในการประกอ)*อของ SessionBean เขาส1 Context หร)อเรยกว1าการ Mapping ไปท* SessionBeanDemoEJB ท* @Stateless ใหเพัฒนม วงเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ0บ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise Ctrl+Space จะม hint มาให * เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก mappedName แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวใส1 ช้ในการประกอ)*อท*ตองการ รปที่ 1.8 การเพัฒนาโปรแกรม$มชื่อของ Session Bea#อของ Session Bean เขาส% Context ของ JBoss Application Server 1.5.2 การพัฒนฒนาโปรแกรม Main.java Implement Source code ของ Main.java ด้วย Enterprise งน import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import ejb.BLSessionRemote; public class Main { public static void main(String[] args) throws NamingException { Context ctx = getJBossNamingContext(); BLSessionRemote sb = (BLSessionRemote)ctx.lookup(SessionBeanForClient); String result = sb.sayHi(Thana); System.out.println(result); } public static Context getJBossNamingContext() throws NamingException{ HashtableString, String env = new HashtableString, String(); env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory); env.put(java.naming.provider.url, localhost:1099); return new InitialContext(env); } } ท* Method getJBossNamingContext() พัฒนบว1ามการ Config ถ.ง host:port ของ Naming Service (เป0นท*ๆเราจะเขาไปถามหา Session Bean ช้ในการประกอ)*อ “SessionBeanForClient”) เราจะตองหา port ของ Server ท*ม EJB อย1 ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งท4าได้วย Enterprise โด้วย Enterprise ย double click ท* Server JBoss ด้วย Enterprise งรป การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 14. 14 รปที่ 1.9 การห้ Web Projecา JNDI port ของ Server ที่ EJB Project Deploy อยู่t ˜A HashtableString, String env = new Hashta% จากนนท4าการรน Application จะได้วย Enterprise ,ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศพัฒนธ(ค)อ Hello Thana print ออกมาท* Console การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 15. 15 1.5.3 การพัฒนฒนาโปรแกรม CurrencyConvertor.java โปรแกรม Desktop Application จะมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกษณะด้วย Enterprise งรป โด้วย Enterprise ยจะใช้ในการประกอ GUI Designer (Jigloo) ในการพัฒนฒนา รปที่ 1.10 GUI ของโปรแกรม CurrencyConvertor 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise SessionBeanDemoClient เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก appClientModule → New → Other... → GUI Forms → Swing → Jframe จะมได้วย Enterprise อะลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ0อกข.นมา ก4าหนด้วย Enterprise Package = swing แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Class Name = CurrencyConvertor รปที่ 1.11 สราง Swing GUI การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 16. 16 2. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กท* JFrame แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวเปลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ*ยน property ท*ช้ในการประกอ)*อ title เป0น Currency Convertor รปที่ 1.12 สราง Swing GUI 3. เพัฒนม JPanel แบบ Form * รปที่ 1.13 สราง Swing GUI 4. การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 17. 17 5. ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศากไอคอน Label ใน Swing Controls จาก Table Compoments Drag Drop ไปท*หนาต1าง ด้วย Enterprise งรป แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวก4าหนด้วย Enterprise ค1า รปที่ 1.14 การวาง Label ใน Components Windows 6. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก jLabel แต1ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะตว แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเปลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ*ยน property ท*ช้ในการประกอ)*อ text เป0น currency, amount แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ value 7. ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศากไอคอน Combo Box มาในต4าแหน1งทางขวาม)อของ currency จากนนใน property ใหเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก model โด้วย Enterprise ยก4าหนด้วย Enterprise Item สองรายการใหเป0น baht แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ euro ด้วย Enterprise งรป รปที่ 1.15 การก!าห้ Web Projecนดค%า item ของ ComboBox การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 18. 18 8. ท4าการ implement sourcecode ด้วย Enterprise งรป 9. Implement source code กรณท*มการกด้วย Enterprise ป'1ม Calculate โด้วย Enterprise ยแกไข source code ด้วย Enterprise งน private void jButton1ActionPerformed(ActionEvent evt) { System.out.println(jButton1.actionPerformed, event=+evt); try { Context ctx = getJBossNamingContext(); BLSessionRemote obj = (BLSessionRemote) ctx.lookup(SessionBeanForClient); int index = jComboBox1.getSelectedIndex(); String currency = (String) jComboBox1.getItemAt(index); String amtStr = jTextField1.getText(); double amt = Double.parseDouble(amtStr); double usDollar = obj.currencyConvertor(currency, amt); jTextField2.setText(usDollar + ); } catch (Exception ex) { ex.printStackTrace(); } } public Context getJBossNamingContext() throws NamingException{ HashtableString, String env = new HashtableString, String(); env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory); env.put(java.naming.provider.url, localhost:1099); return new InitialContext(env); } 10. ป'1ม Exit ท4าเช้ในการประกอ1นเด้วย Enterprise ยวกบป'1ม Calculate private void jButton2ActionPerformed(ActionEvent evt) { System.out.println(jButton2.actionPerformed, event= + evt); System.exit(0); } 11. ทด้วย Enterprise สอบโปรแกรมโด้วย Enterprise ยการเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกสก'ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะปอนจ4านวนเงน แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise ป'1ม Calculate การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 19. 19 Source Code ท* Jigloo สรางข.นมา แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะท*เราปรบปร'งทงหมด้วย Enterprise package swing; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import ejb.BLSessionRemote; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Hashtable; import javax.naming.*; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.WindowConstants; import javax.swing.SwingUtilities; import org.apache.bsf.Main; /** * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI * Builder, which is free for non-commercial use. If Jigloo is being used * commercially (ie, by a corporation, company or business for any purpose * whatever) then you should purchase a license for each developer using Jigloo. * Please visit www.cloudgarden.com for details. Use of Jigloo implies * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR * ANY CORPORATE OR COMMERCIAL PURPOSE. */ public class CurrencyConverter extends javax.swing.JFrame { private JPanel jPanel1; private JLabel jLabel3; private JButton jButton1; private JComboBox jComboBox1; private JButton jButton2; private JTextField jTextField2; private JTextField jTextField1; private JLabel jLabel2; private JLabel jLabel1; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { CurrencyConverter inst = new CurrencyConverter(); inst.setLocationRelativeTo(null); inst.setVisible(true); } }); } public CurrencyConverter() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); { jPanel1 = new JPanel(); FormLayout jPanel1Layout = new FormLayout( 53dlu, 42dlu, 41dlu, 44dlu, max(p;5dlu), max(p;5dlu), max(p;5dlu), max(p;5dlu)); getContentPane().add(jPanel1, BorderLayout.CENTER); jPanel1.setLayout(jPanel1Layout); jPanel1.setPreferredSize(new java.awt.Dimension(182, 104)); { jLabel1 = new JLabel(); jPanel1.add(jLabel1, new CellConstraints( 1, 1, 1, 1, default, default)); jLabel1.setText(Currency); } { jLabel2 = new JLabel(); jPanel1.add(jLabel2, new CellConstraints( 1, 2, 1, 1, default, default)); jLabel2.setText(Amount); } { jLabel3 = new JLabel(); jPanel1.add(jLabel3, new CellConstraints( 1, 3, 1, 1, default, default)); jLabel3.setText(Value [Dollars] ); } { jTextField1 = new JTextField(); jPanel1.add(jTextField1, new CellConstraints( 2, 2, 1, 1, default, default)); } { jTextField2 = new JTextField(); การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 20. 20 jPanel1.add(jTextField2, new CellConstraints( 2, 3, 1, 1, default, default)); } { jButton1 = new JButton(); jPanel1.add(jButton1, new CellConstraints( 1, 4, 1, 1, default, default)); jButton1.setText(Calculate); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jButton1ActionPerformed(evt); } }); } { jButton2 = new JButton(); jPanel1.add(jButton2, new CellConstraints( 2, 4, 1, 1, default, default)); jButton2.setText(Exit); jButton2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { jButton2ActionPerformed(evt); } }); } { ComboBoxModel jComboBox1Model = new DefaultComboBoxModel( new String[] { baht, euro }); jComboBox1 = new JComboBox(); jPanel1.add(getJComboBox1(), new CellConstraints(2, 1, 1, 1, default, default)); jComboBox1.setModel(jComboBox1Model); } } pack(); } catch (Exception e) { e.printStackTrace(); } } private void jButton2ActionPerformed(ActionEvent evt) { System.out.println(jButton2.actionPerformed, event= + evt); System.exit(0); } public JComboBox getJComboBox1() { return jComboBox1; } private void jButton1ActionPerformed(ActionEvent evt) { System.out.println(jButton1.actionPerformed, event=+evt); try { Context ctx = getJBossNamingContext(); BLSessionRemote obj = (BLSessionRemote) ctx.lookup(SessionBeanForClient); int index = jComboBox1.getSelectedIndex(); String currency = (String) jComboBox1.getItemAt(index); String amtStr = jTextField1.getText(); double amt = Double.parseDouble(amtStr); double usDollar = obj.currencyConvertor(currency, amt); jTextField2.setText(usDollar + ); } catch (Exception ex) { ex.printStackTrace(); } } public Context getJBossNamingContext() throws NamingException{ HashtableString, String env = new HashtableString, String(); env.put(java.naming.factory.initial,org.jboss.naming.NamingContextFactory); env.put(java.naming.provider.url, localhost:1099); return new InitialContext(env); } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 21. 21 Exercise 2 Stateful Session Bean Using EJB 3.0 เน#อห้ Web Projecาที่ ตองศึกษาก่อน Ses-กษาก%อน Session Bean Using EJB 3.0 แบบ/.กหด้วย Enterprise ในบทนเป0นการพัฒนฒนา Stateful Session Bean ส4าหรบ Shopping Cart โด้วย Enterprise ยใช้ในการประกอ EJB 3.0 โด้วย Enterprise ยก4าหนด้วย Enterprise ให Session Bean มช้ในการประกอ)*อเป0น Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะม Business Methods สามเมธอด้วย Enterprise ค)อ ● void putItem(String itemId, int quantity) ● void removeItem(String itemId) ● Hashtable getItems() นอกจากนจะม เมธอด้วย Enterprise เท*ถกเรยกจาก @PostConstruct ค)อ ● void initialize() แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Bean Class จะมตวแปรของออปเจ0ค (instance variable) สองตวค)อ ● String customerId ● Hashtable cart ในแบบ/.กหด้วย Enterprise นเราจะเขยน Java Servlet ข.นมาเพัฒน)*อเรยกใช้ในการประกอ Cart Session Bean ท*ช้ในการประกอ)*อ CartManager.java เพัฒน)*อใช้ในการประกอในการเพัฒน*ม/ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการออกจาก Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ เพัฒน)*อแสด้วย Enterprise งรายการท*อย1ใน Cart โด้วย Enterprise ย,ท*เรยก 1 ใช้ในการประกอ CartManager จะตองส1 งพัฒนารามเตอร(ท*ช้ในการประกอ)*อ action มาเพัฒน)อระบ'วาตองการท4าอะไรกบ Cart โด้วย Enterprise ยม action ด้วย Enterprise งน ● add เพัฒน)*อเพัฒน*มรายการลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart ● remove เพัฒน)*อลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการออกจาก Cart ● list เพัฒน)*อแสด้วย Enterprise งรายการใน Cart [หมายเหต' ถาเราสราง Servlet หลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศายๆไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(เพัฒน)*อท4าหนาท*ต1างกน เช้ในการประกอ1น AddCartServlet, RemoveCartServlet แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ ListCartServlet โปรแกรม Stateful Session Bean จะสราง bean instance ส4าหรบ Servlet แต1ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะตวท4าใหใช้ในการประกอ Session ท*ต1างกน] ขนตอนในการพัฒนฒนาโปรแกรม 1. พัฒนฒนา Stateful Session Bean 2. พัฒนฒนาโปรแกรม CartManager.java 3. พัฒนฒนาโปรแกรม CartList.java 2.1 ก รพัฒนฒนำ โปรแกรม Stateful Session Bean แบบ/.กหด้วย Enterprise นจะใช้ในการประกอโปรเจ0คเด้วย Enterprise ม (SessionBeanDemo) ท*สรางในแบบ/.กโปรแกรม Session Bean Using EJB 3.0 ในการสราง Stateful Session Bean โด้วย Enterprise ยมขนตอนในการพัฒนฒนาโปรแกรมนได้วย Enterprise ด้วย Enterprise งน การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 22. 22 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* SessionBeanDemoEJB → New → Session Bean(EJB 3.x) 2. ก4าหนด้วย Enterprise Java package = ejb , Class Name = Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ State Type = Stateful รปที่ 2.1 การก!าห้ Web Projecนดค%าของ Cart Stateful Session Bean 3. ท4าการ Add Business Method โด้วย Enterprise ยเร*มจากสราง Signature Method ใน Interface CartLocal แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ CartRemote ด้วย Enterprise งน Declare Method Signature 3 methods ท* Interface CartLocal , CartRemote Method Name ช้ในการประกอ)*อ putItem Input Parameter 1 = itemId เป0น String Input Parameter 2 = quantity เป0น int Method Name ช้ในการประกอ)*อ removeItem Input Parameter = itemId เป0น String Method Name ช้ในการประกอ)*อ getItems Return Type : Hashtable การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 23. 23 4. จะได้วย Enterprise Business Method อย1ใน Interface ทงสอง (local,remote) 3 Methods ค)อ void putItem(String itemId , int quantity); void removeItem(String itemId); Hashtable getItems(); Implement source code ตาม Listing 2.1 แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ 2.2 Listing 2.1 โปรแกรม CartLocal.java package ejb; import java.util.Hashtable; import javax.ejb.Local; @Local public interface CartLocal { void putItem(String itemId, int quantity); void removeItem(String itemId); Hashtable getItems(); } Listing 2.2 โปรแกรม CartRemote.java package ejb; import java.util.Hashtable; import javax.ejb.Remote; @Remote public interface CartRemote { void putItem(String itemId, int quantity); void removeItem(String itemId); Hashtable getItems(); } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 24. 24 จากนน Fix Error ของ Class Cart.java โด้วย Enterprise ย Implement source code ตาม Listing 2.3 ด้วย Enterprise งน 5. Listing 2.3 โปรแกรม Cart.java package ejb; import java.util.Hashtable; import javax.annotation.PostConstruct; import javax.ejb.Stateful; @Stateful public class Cart implements CartRemote, CartLocal { HashtableString, Integer cart; @PostConstruct public void initialize(){ cart = new HashtableString, Integer(); } @Override public void putItem(String itemId, int quantity) { cart.put(itemId, quantity); } @Override public void removeItem(String itemId) { cart.remove(itemId); } @Override public Hashtable getItems() { return cart; } } 2.2 ก รพัฒนฒนำ โปรแกรม CartManager.java โปรแกรม CartManager.java เป0นโปรแกรม Java Servlet เพัฒน)*อเรยกใช้ในการประกอ Business Method ของ Cart Bean ในการเพัฒน*มรายการลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart โด้วย Enterprise ยก4าหนด้วย Enterprise ให,ใช้ในการประกอส1 งพัฒนารามเตอร(มายงโปรแกรมด้วย Enterprise งน ● itemId ค)อหมายเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศขของรายการสนคา ● quantity ค)อจ4านวนของรายการสนคา ● method ถามค1าเป0น add ค)อเพัฒนมรายการ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะถามค1าเป0น remove ค)อลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการ * ช้ในการประกอ'ด้วย Enterprise ค4าสงต1างๆ ภายใน CartManager อธบายได้วย Enterprise ด้วย Enterprise งน * 1. ประกาศตวแปร cart เป0นช้ในการประกอนด้วย Enterprise CartLocal โด้วย Enterprise ยใช้ในการประกอ annotation ท*ช้ในการประกอ)*อ @EJB ด้วย Enterprise งน @EJB private CartLocal cart; การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 25. 25 2. ค4าสงอ1านค1าพัฒนารามเตอร(ต1างๆ * โด้วย Enterprise ยก4าหนด้วย Enterprise ใหมพัฒนารามเตอร(ส1ง,1านมาจาก request ค)อ action, item แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ quantity โด้วย Enterprise ยมค4าสงด้วย Enterprise งน * String action = request.getParameter(action); String item = request.getParameter(item); String quantity = request.getParameter(quantity); cart.putItem(item, Integer.parseInt(quantity)); 3. ค4าสงการเรยก Enterprise Bean ตาม action ท*ต1างกนด้วย Enterprise งน * if (action.equals(add)) { cart.putItem(item, Integer.parseInt(quantity)); } else if (action.equals(remove)) { cart.removeItem(item); } else if (action.equals(list)) { Hashtable items = cart.getItems(); ……… } ขนตอนการพัฒนฒนา Class CartManager 1. เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกหนาต1าง Projects แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท*โหนด้วย Enterprise SessionBeanDemoWeb จากนนเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกค4าสง New → Servlet * ก4าหนด้วย Enterprise Package = controller , Class Name = CartManager 2. ในหนาต1าง Editor ใหเพัฒน*ม Source code ในการเรยก EJB ด้วย Enterprise งน ประกาศ instant variable เป0นช้ในการประกอนด้วย Enterprise CartLocal เพัฒนราะเราจะส)*อสารกบ EJB ,1าน Interface CartLocal @EJB private CartLocal cart; 3. Implement source code ของ Method processRequest( ) ด้วย Enterprise งน Listing 2.4 โปรแกรม CartManager.java package controller; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import java.util.Hashtable; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ejb.CartLocal; public class CartManager extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 26. 26 @EJB privateCartLocal cart; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(TIS-620); response.setContentType(TIS-620); PrintWriter out = response.getWriter(); String action = request.getParameter(action); String item = request.getParameter(item); String quantity = request.getParameter(quantity); out.println(htmlbodyh1Cart Manager/h1); if (action.equals(add)) { cart.putItem(item, Integer.parseInt(quantity)); } else if (action.equals(remove)) { cart.removeItem(item); } else if (action.equals(list)) { Hashtable items = cart.getItems(); Enumeration itemNames = items.keys(); while (itemNames.hasMoreElements()) { String itemId = (String) itemNames.nextElement(); out.println(Item id: + itemId + Quantity : + items.get(itemId)); out.println(BR); } } out.println(/body/html); } } 2.3 ก รทดสอบโปรแกรม 1. ท4าการ Publish เพัฒน)*อใหท'ก Project ท4าการ Synchronized กน รปที่ 2.2 การ Publish เพัฒนาโปรแกรม#อ Synchronized Project ใน Enterprise Application 2. ท4าการใส1 รายการโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น http://localhost:8080/SessionBeanDemoWeb/CartManager?action=additem=125quantity=3 ท4าการใส1 รายการเพัฒน*มเตมโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น http://localhost:8080/SessionBeanDemoWeb/CartManager?action=additem=123quantity=2 3. แสด้วย Enterprise งรายการใน Cart โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL เป0น http://localhost:8080/SessionBeanDemoWeb/CartManager?action=list 4. ทด้วย Enterprise ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศองลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบรายการโด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL ของ Web Browser เป0น http://localhost:8080/SessionBeanDemoWeb/CartManager?action=removeitem=123 5. แสด้วย Enterprise งรายการใน Cart ใหม1โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก URL เป0น http://localhost:8080/SessionBeanDemoWeb/CartManager?action=list การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 27. 27 Exercise 3 Entity Class (JPA) แบบ/.กหด้วย Enterprise ในบทนเป0นการพัฒนฒนาโปรแกรม Enterprise Java Bean (EJB) โด้วย Enterprise ยจะเป0นการพัฒนฒนา โปรแกรมตด้วย Enterprise ต1อกบฐานขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ MySQL โด้วย Enterprise ยใช้ในการประกอ EJB3.0 บน JBoss Application Server จะประกอบด้วย Enterprise วย Entity Class ท*เช้ในการประกอ)*อมโยงกบตารางท*ช้ในการประกอ)*อ books แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Session Bean เพัฒน)*อใช้ในการประกอในการจด้วย Enterprise การเพัฒน*ม แกไข แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ ใน table books ได้วย Enterprise ขนตอนในการพัฒนาโปรแกรมฒนาโปรแกรม 1. สราง Enterprise Application Project 2. พัฒนฒนา Entity Class 3. พัฒนฒนา Session Bean 4. พัฒนฒนา Web Application 3.1 ก รสร ง Enterprise Application Project สราง Enterprise Application Project โด้วย Enterprise ยม EJB Module แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Web Module อย1ภายใน Project 1. เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกเมน File → New → Enterprise Application Project ก4าหนด้วย Enterprise Project Name = BookApp 2. สราง Module ใหม1 รปที่ 3.1 สราง Module EJB แล็อกการสร้าง Sะ Web ใน Enterprise Application การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 28. 28 3.2 ก ร Config ให้ Project ใช Project ใช้งาน JPA เพื่อเชื่อมต่อกง นำ JPA เพัฒนอเช้งาน JPA เพื่อเชื่อมต่อกอมติดต่อกับ EJB 3.0姍x愭楬2โปรแกรม Wอกบ Database ได Java EE 5 จะใช้ในการประกอคลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศาสประเภท Entity เพัฒน)*อเป0นออปเจ0คท*สอด้วย Enterprise คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศองกบตารางในฐานขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ ในท*นเราจะ สราง Entity Class ท*ช้ในการประกอ)*อ Books.java จากตารางท*ช้ในการประกอ)*อ books ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งมการสรางมาก1อนแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศว โด้วย Enterprise ยมขนตอนการพัฒนฒนา โปรแกรมนมด้วย Enterprise งน 1. Copy EclipseLink , MySQLConnection (.jar file) ไปท* %JBOSS_HOMEcommonlib 2. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* BookAppEJB เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Build path → Configure Build path... 3. เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก Project Facets → JPA ท4าการ Config ด้วย Enterprise งรป การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 29. 29 การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 30. 30 รปที่ 3.2 Configuration ส%วนของ EclipseLink ใน EJB Project 4. สราง JNDI DataSource ให JBoss (คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศายกบการเพัฒน*ม file context.xml ใน Tomcat6) เปด้วย Enterprise Folder $JBOSS_HOMEdocsexamplesjca แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศว copy file mysql-ds.xml ไปท* $JBOSS_HOMEserverdefaultdeploy 5. ท4าการ config file mysql-ds.xml ด้วย Enterprise งรป รปที่ 3.3 Config JNDI Context ให้ Web Projec JBoss การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 31. 31 6. Config persistence.xml ใน BookAppEJB เพัฒน)*อให JPA ใช้ในการประกอ Database ท*ระบ' รปที่ 3.4 Config persistence.xml 7. ท4าการเพัฒน*ม JVM Arguments -Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed รปที่ 3.5 Config persistence.xml 8. Add (Deploy) BookApp ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศง JBoss แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะท4าการ Start JBoss Application Server Monitor ด้วย Enterprise log ท* Console ตองไม1พัฒนบ ERROR การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 32. 32 3.3 ก รพัฒนฒนำ โปรแกรม Entity Class สราง Entity Classes โด้วย Enterprise ย คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* BookAppEJB → New → Entities from Tables รปที่ 3.6 แสดงการสราง Entity Class จะได้วย Enterprise Entity Class ช้ในการประกอ)*อ Books.java ท*ม Getter/Setter ของท'ก Field ใน table books เพัฒน*มส1 วนของ statement การ Query ขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศไปท*บรรทด้วย Enterprise ด้วย Enterprise านลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1างของ @Table(name = books) ด้วย Enterprise งน @NamedQuery (name = Books.findByIsbn, query = SELECT b FROM Books b WHERE b.isbn = :isbn) การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 33. 33 Listing 3.1 โปรแกรม Books.java package entity; import java.io.Serializable; import javax.persistence.*; @Entity @Table(name=books) @NamedQuery (name = Books.findByIsbn, query = SELECT b FROM Books b WHERE b.isbn = :isbn) public class Books implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name=ISBN) private String isbn; @Column(name=AUTHOR) private String author; @Column(name=PRICE) private float price; @Column(name=TITLE) private String title; public String getIsbn() { return this.isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public String getAuthor() { return this.author; } public void setAuthor(String author) { this.author = author; } public float getPrice() { return this.price; } public void setPrice(float price) { this.price = price; } public String getTitle() { return this.title; } public void setTitle(String title) { this.title = title; } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 34. 34 3.4 ก รพัฒนฒนำ โปรแกรม Session Bean โปรแกรม EJB จะใช้ในการประกอ Session Bean ในการตด้วย Enterprise ต1อกบโปรแกรมอ)*นๆ ภายนอก EJB Container โด้วย Enterprise ย โปรแกรมเหลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1านนจะตด้วย Enterprise ต1อกบ Entity Class โด้วย Enterprise ย,1าน Session Bean แบบ/.กหด้วย Enterprise นจะสราง Session Bean ท*ช้ในการประกอ)*อ BooksFacade.java ท*ม Business method ในการ เรยกด้วย Enterprise ขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศของตารางท*ช้ในการประกอ)*อ books โด้วย Enterprise ยใช้ในการประกอ Entity Class ช้ในการประกอ)*อ Books.java แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ EntityManager โด้วย Enterprise ยจะมขนตอนการพัฒนฒนาด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise BookAppEJB เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → SessionBean (EJB 3.x) รปที่ 3.7 แสดงการสราง Session Bean 2. ก4าหนด้วย Enterprise Package = sb Class name = BookFacade eclipse จะสราง Interface BookFacadeLocal.java ให 3. เพัฒนม Signature method ท* interface ของการคนหาหนงส)อ แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ รบช้ในการประกอ)*อ String isbn เพัฒน)*อไปประมวลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ,ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ * Books find(String isbn); การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
  • 35. 35 Listing 3.2 โปรแกรม BookLocal.java package sb; import javax.ejb.Local; import entity.Books; @Local public interface BookFacadeLocal { Books find(String isbn); } 4. Fix Error ท* class BookFacade.java implements concrete class โด้วย Enterprise ยระบ'ช้ในการประกอ)*อ JPA ท*ใช้ในการประกอค)อ BookAppEJB แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวใช้ในการประกองานโด้วย Enterprise ยส1 ง Books.class (Books Entity Class) ไปให entity manager → em.find(Books.class, id); Listing 3.3 โปรแกรม BookFacade.java package sb; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import entity.Books; @Stateless public class BookFacade implements BookFacadeLocal { @PersistenceContext(unitName = BookAppEJB) private EntityManager em; @Override public Books find(String isbn) { return em.find(Books.class, isbn); } } 3.5 ก รพัฒนฒนำ โปรแกรม Web Application โปรแกรม EJB จะเป0นส1 วนของ Business Logic เท1านน การพัฒนฒนาส1 วนของ Presentation จะตองใช้ในการประกอ โปรแกรม Web Application (หร)อ Java SE) แบบ/.กหด้วย Enterprise นจะพัฒนฒนาโปรแกรม Web Application เพัฒน)*อให,ใช้ในการประกอ ปอน isbn ของหนงส)อในหนาเว0บ findBook.html แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวโปรแกรมจะเรยกโปรแกรม Servlet ท*ช้ในการประกอ)*อ ShowBook.java เพัฒน)*อแสด้วย Enterprise งรายลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเอยด้วย Enterprise ของหนงส)อด้วย Enterprise งกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1าวออกมา โด้วย Enterprise ยมขนตอนการพัฒนฒนาด้วย Enterprise งน การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan