วันพฤหัสบดีที่ 29 มกราคม พ.ศ. 2552

EJB development ด้วย Glassfish Server -- Part 1 ( how to setup )

IDE : Eclipse

Application Server : Glassfish

ORM : Oracle Toplink implementaion of JPA
( ORM ตัวอื่น เช่น Entity EJB POJO, Hibernate JPA interface [ RedHat maintains it ] )

RDMBS : Derby [ build in มากับ Glassfish ]
( RDBMS ตัวอื่นเช่น HSQLDB [ Native Java RDBMS, good for testing, any RDBMS is supported ] )

other tools
log4j : loggin features for Java
hibernate-ejb3 : JPA face on Hibernate

1. ลง JDK 1.6
วิธีเลือก version ของ Java บน ubuntu

2. ลง eclipse
เขาบอกว่า ถ้าเรามี Aptana กับ C/C++ dev plugin install อยู่แล้วจะมีปัญหากับ Glassfish
ฉะนั้น ลงใหม่ซะ
วิธีลง eclipse

3. ลง glassfish

- โหลดมา
- unpack jar
$ java -Xmx256M -jar Desktop/glassfish-installer-v2.1-b60e-linux.jar

NOTE : เหมือนว่า ถ้า jar file ไม่เอาไว้ที่ Desktop มันจะเน่าเวลา start domain อ่ะ
ตามนี้ เอาไว้ที่อื่น

dsin@dsin-laptop:/media/disk/AIT/Software Architecture/glassfish$ ./bin/asadmin start-domain
Starting Domain domain1, please wait.
Default Log location is /media/disk/AIT/Software Architecture/glassfish/domains/domain1/logs/server.log.
Redirecting output to /media/disk/AIT/Software Architecture/glassfish/domains/domain1/logs/server.log
Domain domain1 failed to startup. Please check the server log for more details.
CLI156 Could not start the domain domain1.

ถึงแม้ว่าเราจะลงไว้ที่ Desktop
แต่ตอนมันลงเสร็จมันจะไปอยู่ที่ HOMEDIR/glassfish แล้วมันจัดการลบตัว install บน desktop ให้เรียบร้อยเลย เพราะฉะนั้นไม่มีปัญหานะฮะ


setup server
$ cd glassfish; ant -f setup.xml
start Apache Derby RDBMS server (ที่ติดมากับ Glassfish) ในโหมด client-server
$ ./bin/asadmin start-database
วิธี start glassfish Application Server
$ ./bin/asadmin start-domain
ลองสิ http://localhost:4848/asadmin

username : admin
password : adminadmin

วิธี stop glassfish
$ ./bin/asadmin stop-domain

- ดาวน์โหลด adapter ให้ eclipse start/stop glassfish server ได้

วิธีลง
เลือก Java EE perspective
แท็บ Server ข้างล่าง
New -> Server

Eclipse support Server มากมาย เช่น Tomcat แต่เราจะลงเพิ่ม

คลิก download additional server adapters

รอแป๊ป
มันจะขึ้น Server Adapter มาให้เลือก

เลือกดาวน์โหลด GlassFish Java EE 5 Server

วิธีใช้งาน
New -> Server

ปล เลือก v.2 นะ อยู่ลงไปอีกอันนึง ในรูปมันผิด
น่าจะใส่ประมาณนี้ล่ะมั้ง

ตอนแรก ถ้ายังไม่เลือก Application Server Directory มันจะ error ว่า หา JRE ใน /lib/appservอะไรซักอย่าง ไม่เจอ
แต่พอเลือกแล้วก็หาย


เรายังสามารถเปิด admin console ใน browser ของ eclipse โดย
คลิกขวาที่ server instance ด้วย > Glassfish Enterprise Server > View Admin Console

พอลง v.2 แล้ว จะมีแท็ป Glassfish Log Viewer เพิ่มขึ้นมา
-------------------------------------------------------------------------------------------------------------------------------
วิธี setup JDBC connection pool สำหรับ EJB app ให้ติดต่อกับ Derby

- ไปที่ http://localhost:4848/asadmin
- คลิก Create New JDBC connection pool
Use Name: localDBPool
Resource Type: javax.sql.DataSource
Database Vendor: Derby

Classname org.apache.derby.jdbc.ClientDataSource


additional properties ลบอันอื่นไปให้หมดเลยนะ
ไม่งั้นจะ ping ไม่ได้ Parameter wrong for this method : off
ให้เหลือแค่นี้พอ ( ปล. ในรูปมันผิด properties เหลือไว้แค่นี้พอ )


  • ServerName: localhost

  • PortNumber: 1527

  • User: APP

  • Password: APP

  • DatabaseName: localDB

  • ConnectionAttributes: ;create=true

  • RetrieveMessageText: true



ไอ้ตัวหนาคือ ที่จะต้องกรอกเพิ่ม นอกนั้นมันเป็นค่า default อยู่แล้วนะ

อาจเปลี่ยนก็ได้ เช่น เปลี่ยน จำนวน connection ใน connection pool



ลอง Ping เด๊ะ
ต้อง Ping สำเร็จนะ

Java พูดกับ connection pool โดยตรงไม่ได้
ต้องใช้ "Java Name and Directory Interface (JNDI)" ตั้งชื่อ component ให้ connection pool ก่อน
ไม่รู้เรื่อง JNDI อ่านนี่

associate JNDI name กับ connection pool

Resources -> JDBC -> JDBC resources
new
แล้ว add a JNDI reference to localDBPool

JNDIName : jdbc/__localDS ตามนี้

วิธี Set up Eclipse ให้ติดต่อกับ Derby connection

จะทำให้ eclipse validate entity declarations ตาม database schema ได้
( สามารถติดต่อกับ database ด้วย Eclipse และ browse schema ได้ )

create connection profile ตามนี้
- คลิกขวาที่ "Databases" ในแท็บ "Data Source Explorer" และเลือก New
- เลือก "Generic JDBC" connection (not the Embedded Derby Driver option)

- Set up connection :

Name: Local Derby Server
Derby Client JDBC Driver v. 10.2

เลือก derbyclient.jar จาก glassfish/javadb/lib/

Connection URL: jdbc:derby://localhost:1527/localDB;create=true
Database name: localDB
Driver Class: org.apache.derby.jdbc.ClientDriver
User ID: APP
Password: APP
ทีนี้ก็ดู Schema ได้แล้ว

Schema ทั้งหลายจะลงที่ APP Schema ( by default )

ref : mdailey

ไม่มีความคิดเห็น:

LinkWithin

Related Posts Plugin for WordPress, Blogger...