簡體   English   中英

EJB計時器服務錯誤

[英]EJB Timer Service error

我正在嘗試使用EJB計時器服務,我有一個名為TimerBean的類,該類包含調度計時器和處理超時的方法,這實現了TimerBeanRemote接口類。

在另一個會話bean中,我具有以下內容:

TimerBeanRemote service = (TimerBeanRemote) new InitialContext().lookup("TimerBean/remote");

當我嘗試在服務器上運行它時,出現錯誤:

javax.naming.NamingException:在SerialContext中對“ TimerBean /遠程”查找失敗[根異常是javax.naming.NameNotFoundException:TimerBean]

關於為什么找不到它的任何想法? 謝謝!

根據您的評論,如果您試圖在同一容器中訪問TimerBeanRemote ,則可以在servlet或JSF Backing Bean中注入@Remote ejb,否則可以通過JNDI查找找到EJB。

假設您的TimerBean是: com.mypackage.timer.TimerBeanRemote然后按照上面的說明,您可以注入或查找:

  1. 注射
    public class MyServlet ...{

    @EJB
    com.mypackage.timer.TimerBeanRemote timerBean;
    }

  2. JNDI查找:

Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
String[] serverDetails = server.split(":");
props.setProperty("org.omg.CORBA.ORBInitialHost", MyHost);
props.setProperty("org.omg.CORBA.ORBInitialPort", MyPort);

 InitialContext ic = new InitialContext(props);<br> TimerBeanRemote timerBean = (TimerBeanRemote)ic.lookup("com.mypackage.timer.TimerBeanRemote"); 

您可以閱讀以下文章以獲取更多詳細信息: http : //download.oracle.com/javaee/1.4/tutorial/doc/Session5.html

http://www.javabeat.net/articles/3-ejb-30-timer-services-an-overview-1.html

暫無
暫無

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

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