Xây dựng ứng dụng Shopping Cart sử dụng EJB3.1 của JavaEE6 trên server Jboss 7 và WildFly 8, 9, 10

647

Xây dựng ứng dụng Shopping Cart sử dụng EJB3.1 của JavaEE6 trên server Jboss 7 và WildFly 8, 9, 10

Mục đích: Chủ đề của bài này đề cập đến việc ứng dụng Shopping Cart áp dụng EJB3.1 của JavaEE6 deploy trên JBoss 7 và WildFly 8. 9.  10. Qua nội dung bài này, chúng ta sẽ thấy sự khác biệt khi truy cập JNDI name của Stateful trong JavaEE6 với JavaEE5, và JBoss 7 và WildFly so với JBoss phiên bản trước kia

Yêu cầu

  • Nắm vững về EJB3 từ session đến entity (tham khảo tại địa chỉ  và các nội dung cơ bản có liên quan đến EJB
  • Nắm vững về ngôn ngữ lập trình Java, lập trình thao tác hướng đối tượng
  • Nắm vững các khái niệm về MVC và cách áp dụng mô hình này để xây dựng ứng dụng với JavaEE 5
  • Nắm vững các khái niệm về MVC2, cách xây dựng ứng dụng mô hình này trên JavaEE6, cách thức chia module và các mô hình business của các chức năng web cơ bản. Đồng thời, đã cài đặt thành công toàn bộ chức năng cơ bản trên mô hình MVC2 + JavaEE6
  • Nắm vững các thành phần xây dựng ứng dụng web từ Servlet đến JSP
  • Nắm vững khái niệm về DataSource
  • Nắm vững khái niệm về POJO hay JavaBeans và các luật cài đặt cho nó
  • Nắm vững cách cài đặt và sử dụng stateless session bean và entity bean EJB3.1 của JavaEE6 trên JBoss7 và WildFly

Một số vấn đề về JNDI name của Stateful trong JavaEE6

  • Cú pháp cho tên JNDI được cung cấp cho client để tìm kiếm EJB đối stateful: có sự đổi khác hoàn toàn và cách thức được thể hiện so với stateless session bean, cụ thể như sau
      • ejb:myapp/myejbjar/distinctname/beanName!interfaceName?stateful
      • ejb: từ khóa
      • myapp: tên gói ear được đóng gói – bỏ đi phần .ear. Nếu deploy gói ejb – gói jar thì tên này để trống
      • myejbjar: tên gói jar được đóng gói cho ejb – bỏ đi phần .jar
      • distinctname: cho phép đặt tên không trùng, có hay không có điều được. Nếu không có để chuỗi rỗng
      • beanName: tên của bean class
      • interfaceName:tên của remote hay local interface
      • ?stateful: đây là key word để phân biệt với stateless
  • Yêu cầu
    • Nắm vững các kiến thức đã nêu trên cùng với các nội dung về JavaEE 6, MVC2, JPA, 2 tiers và 3 tiers, EJB 2.x và EJB 3
    • Tools sử dụng ở đây là Netbeans 8.1, 7.4
    • JDK 8 update 66 hay JDK 7 update 51 – khuyến cáo sử dụng JDK 7 là ổn định nhất
    • Server: JBoss AS 7.1.1 Final, WildFly 8.2.0 Final, WildFly 9.0.2 Final, WildFly 10.0.0 Final
    • DBMS: SQL Server 2005, 2008, 2012, 2014
    • Thư viện hỗ trợ: JSTL 1.1, 1.2.1, 1.2.2; Driver kết nối database SQLServer (sqljdbc4.jar)
    • Cấu hình server JBoss 7 chạy thành công trên netbeans
    • Đã hoàn thành thành công bài tại địa chỉ
  • Các bước thực hiện
    • Tạo CartSessionBean là loại Stateful và bổ sung Remote

image001

    • Bổ sung thuộc tính và các business methods cho CartSessionBean như sau

image002

image003

    • Các thành phần remote và local được phát sinh như sau

image004

image005

    • Bổ sung giao diện ở web

image006

    • Thực hiện chức năng Add Item trên AddItemServlet

image007

image008

    • Cập nhật ProcessServlet để kết nối chức năng Add và View

image009

image010

    • Tạo view để trình bày kết quả của View Cart và chuẩn bị cho phép remove Item ra khỏi Cart

image011

image012

    • Cập nhật chức năng Remove với RemoveItemServlet

image013

    • Thực hiện clean and Build và Deploy ứng dụng. Thực hiện chạy thử. Ở đây, chúng tôi sẽ chạy thử trên wildfly 10.0.0 Final

image014

      • Chức năng Add To Cart

image015

image016

      • Click View Your Cart

image017

image018

      • Add More Items và click chọn Remove Selected Items

image019

image020

      • Click chọn xóa hết

image021

image022

    • Chúng ta đã hoàn thành xong chức năng Shopping Cart sử dụng Stateful của EJB3.1 của JavaEE 6
  • Chúng ta sẽ kiểm tra thử trong trường hợp chúng ta sử dụng JNDI name như stateless như các EJB version các đã gọi

image023

    • Clean and Build, Deploy và kiểm tra lại
      • Mọi việc deploy bình thường, không có gì phát sinh lỗi cả
      • Thực hiện chức năng Add To Cart, chúng ta sẽ nhận được trang trắng trên browser

image024

      • Ở Server, chúng ta nhận được lỗi như sau

image025

image0226

image027

Chúc mừng các quí vị đã việc cài đặt ứng dụng Shopping Cart áp dụng EJB3.1 của JavaEE6 sử dụng với JBoss 7 và Wildfly từ 8 đến 10.

Rất mong sự góp ý chân thành và chia sẻ của quí vị về vấn đề này. Hẹn gặp lại quý vị ở chủ đề Singleton

Techtalk via kieutrongkhanh

CHIA SẺ