Trong ứng dụng doanh nghiệp của chúng tôi có Cấp dịch vụ (EJB3.0 bao gồm logic nghiệp vụ và truy cập cơ sở dữ liệu) và Cấp web (Servlet/JSP). Tai và chiến tranh đã được khai thác được triển khai trong JBoss AS 7 trên các máy phân tán.Làm cách nào để chuyển thông tin của người gọi từ tầng web sang cấp EJB?
Cấp dịch vụ chứa cả hai Trạng thái và không quốc tịch EJB.
Chúng tôi có bộ chặn đánh chặn EJB để gọi phương thức. Đối với người dùng đăng nhập từ tầng Web thông tin người dùng được lưu trong HttpSession (xác thực người dùng chỉ được xử lý bằng truy vấn tài khoản của mình & mật khẩu trong DB).
Bây giờ, điều chỉnh hiệu suất cần biết người dùng nào đã gọi các phương thức EJB, thông tin người dùng, thông tin ngày, v.v. được trích xuất và ghi lại hoặc lưu trữ trong DB cho anylize của chúng tôi.
Bây giờ câu hỏi của tôi là:
Làm thế nào để phân biệt được thông tin của người gọi trong EJB tầng?
Bộ chặn đánh chặn EJB có thể nhận thông số của phương thức EJB và khi được gọi. Nhưng chúng tôi không biết ai đã gọi nó.
Chúng tôi biết rất xấu khi kết hợp tầng EJB với tầng Web. Vì vậy, chúng tôi sẽ không vượt qua lớp HttpSession/HttpRequest tới EJB ngay cả khi có thể giúp chúng tôi có được những gì chúng ta cần từ đối tượng Session/Request.
Và có rất nhiều phương pháp EJB mà chúng tôi không thể chuyển một TuningInfo (bao gồm thông tin yêu cầu, thông tin người dùng, vv) làm tham số từ web cho mọi phương thức EJB.
Có thể nhận thông tin của người gọi ở cấp EJB không?
Xin cảm ơn trước.