开发者

EJB Timer Service error

开发者 https://www.devze.com 2023-02-24 01:00 出处:网络
I\'m trying to use the EJB开发者_如何学C timer service, I have a class named TimerBean which carries the methods to schedule a timer and handle the timeout, this implements TimerBeanRemote an interfac

I'm trying to use the EJB开发者_如何学C timer service, I have a class named TimerBean which carries the methods to schedule a timer and handle the timeout, this implements TimerBeanRemote an interface class.

In another session bean I have the following:

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

When I try to run it on the server I get the error:

javax.naming.NamingException: Lookup failed for 'TimerBean/remote' in SerialContext [Root exception is javax.naming.NameNotFoundException: TimerBean]

Any ideas as to why it can't find it? Thanks!


Following from your comments -if you are trying to access TimerBeanRemote within the same container then you can inject the @Remote ejb in your servlet or JSF Backing Bean else you can locate your EJB through a JNDI lookup.

Suppose your TimerBean is: com.mypackage.timer.TimerBeanRemote then as per explanation above you can either inject or lookup:

  1. Injection
    public class MyServlet ...{

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

  2. JNDI lookup:

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");

You can read the following articles for further details: 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

0

精彩评论

暂无评论...
验证码 换一张
取 消