Môn Enterprise Application Development in Jakarta EE (EAD) có một nội dung khiến nhiều sinh viên Học kỳ 4 phải thốt lên: khó quá! Thực tế, JNDI (Java Naming and Directory Interface) khá đơn giản, chỉ gồm vài dòng lệnh để tìm và sử dụng tài nguyên. Điều làm nhiều bạn bối rối nằm ở cách tư duy và cấu hình trên Application Server, nơi ứng dụng phải tách biệt hoàn toàn với các tài nguyên như cơ sở dữ liệu hay dịch vụ bên ngoài.

Trong môn EAD, JNDI không chỉ quan trọng mà còn là nội dung bắt buộc phải vượt qua. Nếu bỏ qua phần này, bạn sẽ lập tức “đóng băng” khi làm các dự án demo và không thể hoàn thành bài thi thực hành – nơi việc kết nối cơ sở dữ liệu qua JNDI là yêu cầu cốt lõi.Bài viết này sẽ giúp bạn giải mã bản chất của JNDI theo cách đơn giản nhất. Qua các ví dụ trực quan và hướng dẫn cấu hình từng bước, bạn sẽ làm chủ cách đăng ký, tra cứu tài nguyên, tự tin đặt nền móng vững chắc để chinh phục môn học.

Tại sao lại là JNDI

  • Ứng dụng hệ thống lớn: Dùng trong dự án Enterprise để quản lý Resource tập trung.
  • Cơ chế định vị Resource: Ứng dụng tra cứu Resource qua tên định danh JNDI.
  • Kiến trúc hai thành phần: API và SPI.
  • Phạm vi sử dụng: Dùng local lookup, không khuyến khích mô hình RESTful.
  • Quản lý Transaction: Không cung cấp cơ chế Transaction.
  • Bảo mật: Hỗ trợ SSL nhưng cần bổ sung giải pháp bảo mật phù hợp.

Yêu cầu chuẩn bị

Hướng dẫn này nhằm thiết lập và cấu hình JNDI (Java Naming and Directory Interface) cùng các Resource liên quan trong môi trường Java Enterprise.

Chuẩn bị phần mềm và tài nguyên:

  • SQL Server,
  • Payara Server,
  • JDBC Driver: mssql-*.jar (dùng ở Bước 2)

Cấu Hình

Bước 1: Chuẩn bị CSDL

Bước 2: Cài đặt Thư viện

  • Tải xuống JDBC driver: mssql-jdbc-13.4.0.jre11.jar.
  • Chép vào thư mục thư viện của server theo đường dẫn thực tế của bạn,

Ví dụ: C:\Zones\JP\payara\glassfish\lib.

Bước 3: Cấu hình Server

  • Truy cập trang http://localhost:4848
  • Chọn Resources trong Navigation bên trái,
  • Chọn tiếp JDBC/JDBC Connection Pools,
  • Chọn New trong Main Console bên phải,
  • Điền thông tin trong màn hình 1/2:

Tạo mới JDBC Connection Pool (1/2)

Thuộc tínhGiá trị
Pool NameLab_EAD
Resource Typejavax.sql.DataSource
Database Driver VendorMicrosoftSqlServer
IntrospectEnabled (tích chọn)
  • Nhấp chọn Next chuyển sang màn hình hình 2/2,
  • Điền cụm thông tin 2a/2:

Cấu hình chi tiết JDBC Connection Pool (2a/2)

Thuộc tínhGiá trị
Datasource Classnamecom.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource
Driver Classname(để trống)
PingEnabled (tích chọn)
  • Giữ nguyên thông số trong Pool Settings, Transaction.
  • Điền cụm thông tin 2b/2,

Bổ sung Additional Properties (2b/2)

Cần tìm tích chọn và thiết lập 8/98 thuộc tính bổ sung quan trọng sau:

Thuộc tínhGiá trị
InstanceName(để trống)
TrustServerCertificatetrue
URLjdbc:sqlserver://localhost:1433; databaseName=Lab_EAD; trustServerCertificate=true
ServerNamelocalhost
DatabaseNameLab_EAD
PortNumber1433
Usersa
Password1

 

  • Nhấn nút Finish,
  • Kiểm tra Ping Succeeded?

Tạo mới JDBC Resources

  • Chọn Resources trong Navigation bên trái,
  • Chọn tiếp JDBC/JDBC Resources,
  • Chọn New trong Main Console bên phải,
  • Điền thông tin như bảng dưới rồi bấm OK để hoàn tất.
Thuộc tínhGiá trị
JNDIjdbc/lab_ead
Pool NameLab_EAD
Description(để trống)
StatusEnabled (tích chọn)

Bước 4: Cấu hình Dự án trên Netbeans

Chuẩn bị:

  • Kiểm tra Server
    • Stop Payara trong tab Services
    • Start lại.
    • Kiểm tra jdbc/lab_ead trong JDBC Resources
  • Add Connection,
  • Kiểm tra xml trong dự án web,
  • Kiểm tra payara server trong dự án ear,
  • Add Entity classes from database; bước này còn để sinh ra file xml.

Cấu hình Persistence (Tệp persistence.xml)

  • Mở xml,
  • Ckick bút Add trong Persistence Units,
  • Điền thông tin như hình 01.

  • Uncheck mục Include All Entity Classes,
  • Bấm nút Add Class…
  • Chọn Book class như hình như hình 02

  • Quay lại tab Source trên thanh công cụ,
  • Xoá các đoạn mã không cần thiết trong file XML.

Thay đổi trong persistence.xml:

  • Thẻ <exclude-unlisted-classes>, có thể xoá hoặc đổi sang giá trị false,
  • Bỏ toàn bộ <properties>.

Tạo SessionBean

  • Chọn dự án ejb,
  • Chọn package fpt.sb trong Source Packages,
  • Phím phải, chọn New > Session Bean,
  • Điền thông tin như hình 04.

Phát triển Business Method

  • Trong gói fpt.sb, mở class BookSessionBean,
  • Phím phải, chọn Insert Code > Add Business Method.
  • Điền thông tin như hình 05.

  • Code như hình 06.

Gọi Business Method từ Servlet

  • Chọn dự án web,
  • Tạo mới servlet như hình 07.

  • Code như như hình 08.

Thay đổi gói “import javax.ejb.*” sang gói “import jakarta.ejb.*” trong:

  • BookSessionBeanLocal và
  • BookSessionBean

Bước 5: Biên dịch và thực thi.

  • Tham khảo Lab01_ Maven Archetype,
  • Trang 7, mục “Biên dịch” và mục “Thực thi” trong phần III.
  • Kết quả như hình 08.

Giảng viên Lê Thanh Nhân

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96









    Your information will be securely sent to and stored in Google Sheets for the purpose of processing your form submission.