![](/img/trans.png)
[英]Error EJB Timer Service is not available. Timers for application will not be deleted
[英]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
然后按照上面的說明,您可以注入或查找:
注射
public class MyServlet ...{
@EJB
com.mypackage.timer.TimerBeanRemote timerBean;
}
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.