Tôi có EJB không quốc tịch để truy cập cơ sở dữ liệu của tôi. Tôi cần hạt này trong bộ chuyển đổi JSF 2 để truy xuất đối tượng thực thể từ tham số giá trị Chuỗi. Tôi đang sử dụng JEE6 với Glassfish V3.Tiêm EJB vào bộ chuyển đổi JSF với JEE6
@EJB
chú thích không hoạt động và nhận NPE, vì nó nằm trong ngữ cảnh khuôn mặt và không có quyền truy cập vào ngữ cảnh EJB.
Câu hỏi của tôi là: Vẫn có thể tiêm đậu này bằng @Resource
hoặc chú thích khác hoặc tra cứu JNDI hoặc tôi có cần giải pháp không?
Giải pháp
Thực hiện tra cứu JNDI như thế này:
try {
ic = new InitialContext();
myejb= (MyEJB) ic
.lookup("java:global/xxxx/MyEJB");
} catch (NamingException e) {
e.printStackTrace();
}
tra cứu JNDI không hoạt động. Tôi đã thử @EJB (mappedName = "java: global/myProject/myEJB") trong đó giá trị là giá trị đầu ra của glassfish trong giao diện điều khiển là "tên JNDI di động" của EJB trong khi triển khai –
không sử dụng chú thích @EJB. Lấy thành phần đích bằng InitialContext. – Bozho
@Bozho: InitialContext đã hoạt động! :) Thankyou –