Submit Search
Java EE Programming [EJB 3.0 and JPA] Using Eclipse and JBoss
3 likes
3,196 views
IMC Institute
EJB 3.0 and JPA Using Eclipse and JBoss WorkBook [in Thai]
Technology
Read more
1 of 47
Download now
Downloaded 320 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
More Related Content
What's hot
(16)
PDF
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
IMC Institute
PDF
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
Dr.Kridsanapong Lertbumroongchai
PDF
การสร้าง Apps for Android ด้วย MIT App Inventor
Somchart Phaeumnart
PDF
สอนออนไลน์ด้วย OBS Studio
Dr.Kridsanapong Lertbumroongchai
PDF
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
DOC
ม.6 05 แผนการจัดการเรียนรู้ที่ 18 23
พิชัย ตุ้งประโคน
PDF
เอกสารประกอบการอบรม Adroidpdf
Weerachat Martluplao
PDF
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
Dr.Kridsanapong Lertbumroongchai
PDF
คู่มือ Courselab
Norasit Plengrudsamee
PDF
Course lap
kruood
PDF
คู่มือการใช้งานโปรแกรม CourseLab
อาคม สุวรรณประเสริฐ
PPT
งานกลุ่ม เรื่อง You tube
GuDream Saicheua
PDF
Java Web Services and SOA Using GlassFish openESB and NetBeans
Software Park Thailand
PDF
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
Dr.Kridsanapong Lertbumroongchai
PDF
หนังสือ Yii Framework Application Workshop เล่ม 1
Manop Kongoon
PDF
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
Nattapon
็Hand-on Exercise: Java Web Services using Eclipse + Tomcat & NetBeans + Glas...
IMC Institute
การสร้างสื่อ AR Augmented Reality ด้วย Unity + Vuforia
Dr.Kridsanapong Lertbumroongchai
การสร้าง Apps for Android ด้วย MIT App Inventor
Somchart Phaeumnart
สอนออนไลน์ด้วย OBS Studio
Dr.Kridsanapong Lertbumroongchai
Java Web Programming Using NetBeans 6.5
Thanachart Numnonda
ม.6 05 แผนการจัดการเรียนรู้ที่ 18 23
พิชัย ตุ้งประโคน
เอกสารประกอบการอบรม Adroidpdf
Weerachat Martluplao
การสร้างสระบบนำชมด้วยเทคโนโลยีเสมือนจริง 3D Vista
Dr.Kridsanapong Lertbumroongchai
คู่มือ Courselab
Norasit Plengrudsamee
Course lap
kruood
คู่มือการใช้งานโปรแกรม CourseLab
อาคม สุวรรณประเสริฐ
งานกลุ่ม เรื่อง You tube
GuDream Saicheua
Java Web Services and SOA Using GlassFish openESB and NetBeans
Software Park Thailand
การสร้างวิดีโอสอนออนไลน์ด้วย Camtasia และการสร้างช่อง YouTube
Dr.Kridsanapong Lertbumroongchai
หนังสือ Yii Framework Application Workshop เล่ม 1
Manop Kongoon
ใบความรู้ที่ 4 เริ่มต้นสร้างแอพลิเคชันด้วย mit app inventor
Nattapon
Viewers also liked
(12)
PDF
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
IMC Institute
PDF
๋Java Web Programming on Cloud Computing using Google App Engine
IMC Institute
PDF
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
IMC Institute
PDF
JEE Programming - 05 JSP
Danairat Thanabodithammachari
PDF
JEE Programming - 01 Introduction
Danairat Thanabodithammachari
PDF
JEE Programming - 08 Enterprise Application Deployment
Danairat Thanabodithammachari
PDF
JEE Programming - 02 The Containers
Danairat Thanabodithammachari
PDF
JEE Programming - 06 Web Application Deployment
Danairat Thanabodithammachari
PDF
JEE Programming - 04 Java Servlets
Danairat Thanabodithammachari
PDF
JEE Programming - 07 EJB Programming
Danairat Thanabodithammachari
PDF
JEE Programming - 03 Model View Controller
Danairat Thanabodithammachari
PPTX
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
Ryan Cuprak
ATCI : 25th Anniversary: Ever Onward; Dinner Talk 18 September 2014
IMC Institute
๋Java Web Programming on Cloud Computing using Google App Engine
IMC Institute
Java Web Programming (JSP/Servlet) Using Eclipse and Tomcat
IMC Institute
JEE Programming - 05 JSP
Danairat Thanabodithammachari
JEE Programming - 01 Introduction
Danairat Thanabodithammachari
JEE Programming - 08 Enterprise Application Deployment
Danairat Thanabodithammachari
JEE Programming - 02 The Containers
Danairat Thanabodithammachari
JEE Programming - 06 Web Application Deployment
Danairat Thanabodithammachari
JEE Programming - 04 Java Servlets
Danairat Thanabodithammachari
JEE Programming - 07 EJB Programming
Danairat Thanabodithammachari
JEE Programming - 03 Model View Controller
Danairat Thanabodithammachari
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
Ryan Cuprak
Ad
Similar to Java EE Programming [EJB 3.0 and JPA] Using Eclipse and JBoss
(20)
DOCX
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
fulk123
PDF
โครงงาน
ความรักอาจมั้ย เขาข้างเราเสมอปัย
PDF
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
Justice MengKing
PDF
webprogramming eclipse-jsp
Weerasak Sriwongyang
PDF
ผลงานนักศึกษาวิชาโครงงาน
AjBenny Pong
PDF
โครงงาน
จักรภัทร สุตะพันธ์
PDF
Book area
พิชัย ตุ้งประโคน
PDF
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
Mintra Pudprom
PDF
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
KaRn Tik Tok
PDF
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
Soldic Kalayanee
PDF
โครงงาน
I'Dear Na-Dear
PDF
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
Thanatchaporn Yawichai
PDF
P5202240039
Playplayplay
PDF
รูปเล่มวิชาโครงงาน
AjBenny Pong
PDF
รูปเล่มวิชาโครงงาน
AjBenny Pong
PDF
รูปเล่มวิชาโครงงาน
AjBenny Pong
PDF
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
Soldic Kalayanee
PDF
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
Mintra Pudprom
PDF
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
KaRn Tik Tok
PDF
โครงการอบรมการผลิตสื่อออนไลน์
tassanee chaicharoen
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์2
fulk123
โครงงาน
ความรักอาจมั้ย เขาข้างเราเสมอปัย
ใบงานที่ 8 เรื่อง โครงงานประเภท “การพัฒนาโปรแกรมประยุกต์”
Justice MengKing
webprogramming eclipse-jsp
Weerasak Sriwongyang
ผลงานนักศึกษาวิชาโครงงาน
AjBenny Pong
โครงงาน
จักรภัทร สุตะพันธ์
Book area
พิชัย ตุ้งประโคน
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
Mintra Pudprom
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
KaRn Tik Tok
ใบงานที่ 8 โครงงานประเภท การพัฒนาโปรแกรมประยุกต์
Soldic Kalayanee
โครงงาน
I'Dear Na-Dear
โครงร่างโครงงานคอม เรื่อง กว่าจะเป็น Apple inc.
Thanatchaporn Yawichai
P5202240039
Playplayplay
รูปเล่มวิชาโครงงาน
AjBenny Pong
รูปเล่มวิชาโครงงาน
AjBenny Pong
รูปเล่มวิชาโครงงาน
AjBenny Pong
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
Soldic Kalayanee
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
Mintra Pudprom
ใบงานที่ 7 เรื่อง โครงงานประเภทการประยุกต์ใช้งาน
KaRn Tik Tok
โครงการอบรมการผลิตสื่อออนไลน์
tassanee chaicharoen
Ad
More from IMC Institute
(20)
PDF
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
PDF
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
PDF
บทความ The evolution of AI
IMC Institute
PDF
IT Trends eMagazine Vol 4. No.12
IMC Institute
PDF
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
PDF
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
PDF
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
PDF
IT Trends eMagazine Vol 4. No.11
IMC Institute
PDF
แนวทางการทำ Digital transformation
IMC Institute
PDF
บทความ The New Silicon Valley
IMC Institute
PDF
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
PDF
แนวทางการทำ Digital transformation
IMC Institute
PDF
The Power of Big Data for a new economy (Sample)
IMC Institute
PDF
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
PDF
IT Trends eMagazine Vol 3. No.9
IMC Institute
PDF
Thailand software & software market survey 2016
IMC Institute
PPTX
Developing Business Blockchain Applications on Hyperledger
IMC Institute
PDF
Digital transformation @thanachart.org
IMC Institute
PDF
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
PDF
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
นิตยสาร Digital Trends ฉบับที่ 14
IMC Institute
Digital trends Vol 4 No. 13 Sep-Dec 2019
IMC Institute
บทความ The evolution of AI
IMC Institute
IT Trends eMagazine Vol 4. No.12
IMC Institute
เพราะเหตุใด Digitization ไม่ตอบโจทย์ Digital Transformation
IMC Institute
IT Trends 2019: Putting Digital Transformation to Work
IMC Institute
มูลค่าตลาดดิจิทัลไทย 3 อุตสาหกรรม
IMC Institute
IT Trends eMagazine Vol 4. No.11
IMC Institute
แนวทางการทำ Digital transformation
IMC Institute
บทความ The New Silicon Valley
IMC Institute
นิตยสาร IT Trends ของ IMC Institute ฉบับที่ 10
IMC Institute
แนวทางการทำ Digital transformation
IMC Institute
The Power of Big Data for a new economy (Sample)
IMC Institute
บทความ Robotics แนวโน้มใหม่สู่บริการเฉพาะทาง
IMC Institute
IT Trends eMagazine Vol 3. No.9
IMC Institute
Thailand software & software market survey 2016
IMC Institute
Developing Business Blockchain Applications on Hyperledger
IMC Institute
Digital transformation @thanachart.org
IMC Institute
บทความ Big Data จากบล็อก thanachart.org
IMC Institute
กลยุทธ์ 5 ด้านกับการทำ Digital Transformation
IMC Institute
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
[email protected]
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
36.
36 3.5.1
การพัฒนฒนาโปรแกรม findBook.html โปรแกรม findBook.html เป0นเว0บเพัฒนจท*ใช้ในการประกอแสด้วย Enterprise งฟอร(มส4าหรบให,ใช้ในการประกอปอน isbn ของหนงส)อ โด้วย Enterprise ยมขนตอนการพัฒนฒนาด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise BookAppWeb เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกค4าสง New → HTML * 2. ก4าหนด้วย Enterprise HTML File Name: เป0น findBook แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise Finish 3. เขยน source code ของไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ( findBook.html ตาม Listing ท* 3.4 Listing 3.4 โปรแกรม findBook.html !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html head meta http-equiv=Content-Type content=text/html; charset=UTF-8 titleInsert title here/title /head body form action=ShowBook method=POST h2Search Book from ISBN/h2 Enter ISBN input type=text name=isbn / input type=submit value=Find / /form /body /html 3.5.2 การพัฒนฒนาโปรแกรม ShowBook.java โปรแกรม ShowBook.java เป0นโปรแกรม Java Servlet ท*จะอ1านหมายเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศข ISBN ท*,ใช้ในการประกอปอนมาจาก หนา findBook.html แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะจะเรยกเมธอด้วย Enterprise find() ของ session bean ท*ช้ในการประกอ)*อ BooksFacade เพัฒน)*อแสด้วย Enterprise งรายลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเอยด้วย Enterprise ของหนงส)อ โด้วย Enterprise ยมขนตอนการพัฒนฒนาโปรแกรมด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise BookAppWeb เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก New → Servlet Package = servlets File Name = ShowBook 2. เพัฒนม source code ในการเรยก EJB (ประกาศเป0น Instance Varible) * @EJB private BooksFacadeLocal booksFacade; Eclipse จะแจง Error เพัฒนราะ Web ไม1เห0น EJB Project การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
37.
37
ใหท4าการเพัฒนม Build path ใหม Library ของ EJB Project โด้วย Enterprise ยเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกท* Fix Project Setup * แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ set Build path ใหด้วย Enterprise งรป รปที่ 3.8 แสดงการ Fix Project Setup การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
38.
38
ใหปรบปร'ง Source code ในเมธอด้วย Enterprise processRequest ด้วย Enterprise ง Listing ด้วย Enterprise านลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ1าง 3. Listing 3.5 โปรแกรม ShowBook.java package servlets; import java.io.IOException; import java.io.PrintWriter; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import sb.BookFacadeLocal; import entity.Books; public class ShowBook extends HttpServlet { private static final long serialVersionUID = 1L; @EJB private BookFacadeLocal bookFacade; public ShowBook() { super(); } 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); } protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(TIS-620); response.setContentType(TIS-620); PrintWriter out = response.getWriter(); out.println(html); out.println(head); out.println(titleServlet ShowBook/title); out.println(/head); out.println(body); String isbn = request.getParameter(isbn); Books book = bookFacade.find(isbn); out.println(Title: + book.getTitle() + BR); out.println(Author: + book.getAuthor() + BR); out.println(Price: + book.getPrice() + BR); out.println(/body); out.println(/html); out.close(); } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
39.
39 3.6
ก รทดสอบโปรแกรม 1. Re-Publish JBoss Server 2. เรยก http://localhost:8080/BookAppWeb/findBook.html 3. กรอก isbn ท*มใน table books แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวกด้วย Enterprise Find หนาจอก0จะแสด้วย Enterprise งรายลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเอยด้วย Enterprise ของหนงส)อออกมา การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
40.
40
Exercise 4 ก รพัฒนฒนำ JSP เพัฒนอเรยกใช้งาน JPA เพื่อเชื่อมต่อก EJB 3.0 เน#อห้ Web Projecาที่ ตองศึกษาก่อน Ses-กษาก%อน Entity Class แบบ/.กหด้วย Enterprise นเป0นการพัฒนฒนาโปรแกรม JSP เพัฒน)*อเรยกใช้ในการประกอ Entity Class ท*ช้ในการประกอ)*อ Books แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Session Bean ท* ช้ในการประกอ)*อ BooksFacade ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งพัฒนฒนามาจากแบบ/.กหด้วย Enterprise เร)*อง Entity Class แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวจะเรยกใช้ในการประกอ Stateful Session Bean ท*ช้ในการประกอ)*อ Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะโปรแกรม Servlet ท*ช้ในการประกอ)*อ CartManager.java ท*พัฒนฒนามาจากแบบ/.กหด้วย Enterprise เร)*อง Stateful Session Bean 1 Using EJB 3.0 เพัฒน)*อใส1 รายช้ในการประกออหนงส)อลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะเพัฒน)*อแสด้วย Enterprise งรายการท*อย1ใน Cart โด้วย Enterprise ยใช้ในการประกอ Project ท*,านมา )* ช้ในการประกอ)*อ SessionBeanDemoWeb โปรแกรม showBook.jsp เป0นโปรแกรม JSP ท*จะเรยกใช้ในการประกอ Custom Tag ท*ช้ในการประกอ)*อ EJBTags:GetBooks ซึ่งมี EJB Module และ Web Module ภายในตัว P.*งจะเป0น Tag ท*เรยกใช้ในการประกอ เมธอด้วย Enterprise findAll() ของ BooksFacade Session Bean แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวเก0บ List ของหนงส)อทงหมด้วย Enterprise ไวใน session โปรแกรม showBook.jsp ก0จะแสด้วย Enterprise งรายช้ในการประกอ)*อหนงส)อทงหมด้วย Enterprise มาให,ใช้ในการประกอเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงใน Cart โปรแกรมน ตองพัฒนฒนาไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(ต1างๆ ค)อ ● Tag Library Descriptor ● Tag Handler ● JSP File โด้วย Enterprise ยมขนตอนการพัฒนฒนาด้วย Enterprise งน 4.1.1 สราง Tag Library Descriptor ไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(นจะใช้ในการประกอเก0บ รายช้ในการประกออ Tag ต1างๆท*มอย1เพัฒน)*อสามารถน4า tag ต1างๆ มาใช้ในการประกอในโปรแกรม JSP โด้วย Enterprise ยใช้ในการประกอค4าสง )* * %@taglib ...% การสราง Tag Library Descriptor จะมขนตอนด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท*โหนด้วย Enterprise BookAppWeb 2. สรางโฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศเด้วย Enterprise อร( Web PagesWEB-INFtlds 3. สรางไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ(ท*ช้ในการประกอ)*อ EJBTags.tld แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ implements ด้วย Enterprise งน การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
41.
41 Listing 4.1 โปรแกรม
EJBTags.tld ?xml version=1.0 encoding=UTF-8? taglib xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns=http://java.sun.com/xml/ns/javaee xmlns:web=http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd xsi:schemaLocation=http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd id=WebApp_ID version=2.1 tlib-version1.2/tlib-version short-nameEJBTags/short-name uri/WEB-INF/tlds/EJBTags/uri tag nameGetBooks/name tag-classtags.GetBooks/tag-class body-contentscriptless/body-content /tag /taglib 4.1.2 สรางไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ( Tag Handler 1 ไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ( Tag Handler จะเป0นโปรแกรมจาวาท*พัฒนฒนาข.นเพัฒน)*อระบ'วา เม)*อเรยกใช้ในการประกอ tag แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวจะตองท4าค4าสง * อย1างไร ในท*นจะก4าหนด้วย Enterprise ช้ในการประกอ)*อ Tag เป0น GetBook โด้วย Enterprise ยมขนตอนการพัฒนฒนาด้วย Enterprise งน 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ7กขวาท* Project BookAppWeb จากนนเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกค4าสง New → Class * ก4าหนด้วย Enterprise Package = tags , Class Name = GetBooks เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อก SuperClass = SimpleTagSupport 2. ท4าการ Implement Method ช้ในการประกอ)*อ doTag( ) : Call Enterprise Bean โด้วย Enterprise ยใช้ในการประกอ annotation @EJB @EJB private BooksFacadeLocal booksFacade; ใหเพัฒนม Signature Method = ListBooks findAll(); ท* interface BookFacadeLocal 3. * Listing 4.2 โปรแกรม BooksFacadeLocal.java package sb; import java.util.List; import entity.Books; @Local public interface BookFacadeLocal { Books find(String isbn); ListBooks findAll(); } 4. Fix Error โด้วย Enterprise ยการ Implements BooksFacade.java ด้วย Enterprise งน public ListBooks findAll() { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); cq.select(cq.from(Books.class)); return em.createQuery(cq).getResultList(); } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
42.
42
5. แกไข Books.java โด้วย Enterprise ยลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศบของเด้วย Enterprise มออกแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศวใส1 ช้ในการประกอ'ด้วย Enterprise Query statement ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศงไป @NamedQueries({ @NamedQuery(name = Books.findAll, query = SELECT b FROM Books b), @NamedQuery(name = Books.findByIsbn, query = SELECT b FROM Books b WHERE b.isbn = :isbn) }) Listing 4.3 โปรแกรม Books.java package entity; import java.io.Serializable; import javax.persistence.*; @Entity @Table(name = books) @NamedQueries({ @NamedQuery(name =Books.findAll,query=SELECT b FROM Books b), @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
43.
43
6. Implement source code ใน class GetBooks.java ท*เมธอด้วย Enterprise doTag() ด้วย Enterprise งน public void doTag() throws JspException { JspWriter out = getJspContext().getOut(); try{ JspFragment f = getJspBody(); if (f != null)f.invoke(out); ListBooks books = bookFacade.findAll(); getJspContext().setAttribute(books,books,PageContext.SESSION_SCOPE); } catch (IOException ex) { throw new JspException(ex.getMessage()); } } Listing 4.4 โปรแกรม GetBooks.java package tags; import java.io.IOException; import java.util.List; import javax.ejb.EJB; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport; import entity.Books; import sb.BookFacadeLocal; public class GetBooks extends SimpleTagSupport { @EJB private BookFacadeLocal bookFacade; @Override public void doTag() throws JspException { JspWriter out = getJspContext().getOut(); try { JspFragment f = getJspBody(); if (f != null)f.invoke(out); ListBooks books = bookFacade.findAll(); getJspContext().setAttribute(books, books,PageContext.SESSION_SCOPE); } catch (IOException ex) { throw new JspException(ex.getMessage()); } } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
44.
44 4.1.3
เขยนโปรแกรม showBook.jsp 1. คลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศกขวาท* BookAppWeb จากนนเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกค4าสง New → JSP * ก4าหนด้วย Enterprise JSP File Name: เป0น showBook 2. ในหนาต1าง editor ใหแกไข source code ของไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ( showBook.jsp ใหเป0นไปตาม Listing ท* 4.5 โปรแกรมนจะให,ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศพัฒนธ(ด้วย Enterprise งตวอย1างในรปท* 4.1 รปที่ 4.1 ผล็อกการสร้าง Sล็อกการสร้าง Sพัฒนาโปรแกรมธ์โปรแกรม showBโปรแกรม showBook.jsp การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
45.
45 Listing 4.5 โปรแกรม
showBook.jsp %@page contentType=text/html% %@page pageEncoding=UTF-8% %@taglib uri=http://java.sun.com/jsp/jstl/core prefix=c% %@taglib uri=/WEB-INF/tlds/EJBTags prefix=EJB % htmlbody EJB:GetBooks/ h1Please Select Books/h1 form action=http://localhost:8080/SessionBeanDemoWeb/CartManager input type=HIDDEN name=action value=add / table border=1 thead tr th/th th Title /th th Author /th th Price /th th Quantity /th /tr /thead tbody c:forEach var=book items=${sessionScope.books} tr tdinput type=checkbox name=item value=${book.isbn} //td td${book.title}/tdtd${book.author}/td td${book.price}/td tdinput type=text name=${book.isbn} value=0 size=3 / /td /tr /c:forEach /tbody /table p input type=submit value=Add / /form /body /html 4.2 ก รปรบปร งโปรแกรม CartManager.java โปรแกรม CartManager.java เด้วย Enterprise มจะก4าหนด้วย Enterprise ใหอ1านขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศการใส1 รายการสนคาลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศง Cart ท*ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะรายการ เพัฒน)*อใหโปรแกรมสามารถอ1านขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศรายการสนคาท*จะเก0บอย1ในตวแปรอะเรย(ช้ในการประกอนด้วย Enterprise String ท*อาจมหลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศายรายการซึ่งมี EJB Module และ Web Module ภายในตัว P.*ง ถกเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกมาจาก checkbox ท*อย1ในหนา showBook.jsp ได้วย Enterprise โด้วย Enterprise ยใหแกไข source code ในไฟลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ( CartManager.java ส1 วน Business Logic ของการเพัฒน*มขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ ด้วย Enterprise งน if (action.equals(add)) { cart.putItem(item, Integer.parseInt(quantity)); } เป0น if (action.equals(add)) { String[] items = request.getParameterValues(item); for (int i = 0; i items.length; i++) { String qty = request.getParameter(items[i]); cart.putItem(items[i], Integer.parseInt(qty)); } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
46.
46 Listing 4.6 โปรแกรม
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); } @EJB CartLocal cart; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(TIS-620); response.setContentType(TIS-620); String action = request.getParameter(action); String item = request.getParameter(item); String quantity = request.getParameter(quantity); PrintWriter out = response.getWriter(); out.println(htmlbodyh1Cart Manager/h1); if (action.equals(add)) { String[] items = request.getParameterValues(item); for (int i = 0; i items.length; i++) { String qty = request.getParameter(items[i]); cart.putItem(items[i], Integer.parseInt(qty)); } } 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); } } การพัฒนฒนาโปรแกรมด้วย Enterprise วย Enterprise Java Bean 3.0 Assoc.Prof.Dr.Thanachart Numnonda/ Asst Prof.Thanisa Kruawaisayawan
47.
47 4.3
ก รทดสอบโปรแกรม 1. ท4าการ Build แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ Deploy โปรเจ0ค SessionBeanDemo แลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะ BookApp 2. เปด้วย Enterprise URL http://localhost:8080/BookAppWeb/showBook.jsp ใหเราทด้วย Enterprise ลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศองเลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกแลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศะใส1 ขอมลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ 3. เม)*อกด้วย Enterprise ป'1ม Add โปรแกรมก0จะเก0บหนงส)อท*เลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศ)อกลักสูตร Mini Master of Java Technology คณะเทคโนโลยีสารสนเทศง Cart 4. แสด้วย Enterprise งรายการใน Cart โด้วย 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
Download