簡體   English   中英

在Maven項目中注入有狀態EJB Bean

[英]Inject stateful EJB beans in a maven project

我不明白我希望你們中的某人能向我解釋的一件事。 我有一個用glassfish開發的Maven企業項目。

我使用插入代碼netbeans函數(右鍵單擊)來調用servlet中的bean,尤其是注釋

@EJB

我不明白為什么當我通過netbeans中的插入代碼功能調用有狀態會話bean時,是通過JNDI調用bean的原因。 這是我的意思

private BookingBeanInterface lookupBookingBeanLocal() {
        try {
            Context c = new InitialContext();
            return (BookingBeanInterface) c.lookup("java:global/it.volaconnoi_volaconnoi-webapp-ear_ear_1.0-SNAPSHOT/it.volaconnoi_volaconnoi-webapp-ejb_ejb_1.0-SNAPSHOT/BookingBean!it.volaconnoi.logic.BookingBeanInterface");
        } catch (NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
            throw new RuntimeException(ne);
        }
    }`

上面的功能還不是我寫的

我無法通過EJB注入有狀態會話bean?

這是解決問題的方法:

您可能已經知道單個Servlet實例用於處理來自多個客戶端的多個請求,因此有狀態EJB不應直接注入Servlet中並作為實例屬性保存,否則我們將面臨與線程安全相關的明顯問題。 在我們的例子中,我們是從doGet方法中的JNDI獲取它並將其存儲在HTTP會話中的,這樣每個用戶都將擁有它自己的Sateful EJB實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM