Thứ Năm, 25 tháng 8, 2016

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

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

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ỉ http://www.kieutrongkhanh.net/2016/08/entity-bean-trong-ejb-30.html ) 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 (tham khảo tại địa chỉ http://www.kieutrongkhanh.net/2016/08/mvc-pattern-tren-web-mo-hinh-thiet-ke.html  )
  • 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 (tham khảo tại địa chỉ  )
  • Nắm vững các thành phần xây dựng ứng dụng web từ Servlet đến JSP (tham khảo tại địa chỉ http://www.kieutrongkhanh.net/search/label/Servlet%26JSP )
  • 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 (tham khảo tại địa chỉ http://www.kieutrongkhanh.net/2016/08/xay-dung-ung-dung-3-tiers-su-dung-ejb3.html )

Toàn bộ nội dung của bài này là nâng cấp toàn bộ bài tại địa chỉ http://www.kieutrongkhanh.net/2016/08/ung-dung-jpa-vao-mvc2-ket-hop-javaee6.html  với nội dung tập trung vào phần chức năng shopping cart của hệ thống và cũng là bài mở rộng chức năng cho toàn bộ bài tại địa chỉ http://www.kieutrongkhanh.net/2016/08/xay-dung-ung-dung-3-tiers-su-dung-ejb3.html

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

Vận dụng các khái niệm trên để mở rộng ứng dụng tại địa chỉ http://www.kieutrongkhanh.net/2016/08/xay-dung-ung-dung-3-tiers-su-dung-ejb3.html ,  chúng ta thực hiện nâng cấp ứng dụng

  • 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 (tham khảo bài tại địa chỉ http://www.kieutrongkhanh.net/2016/08/su-dung-netbeans-721-jboss-711-final.html )
    • Đã hoàn thành thành công bài tại địa chỉ http://www.kieutrongkhanh.net/2016/08/xay-dung-ung-dung-3-tiers-su-dung-ejb3.html
  • Các bước thực hiện
    • Tạo CartSessionBean là loại Stateful và bổ sung Remote

 

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

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

    • Bổ sung giao diện ở web

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

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

    • 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

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

    • 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

      • Chức năng Add To Cart

      • Click View Your Cart

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

 

      • Click chọn xóa hết

    • 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

    • 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

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

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

Không có nhận xét nào:

Đăng nhận xét