I have the following Timer service class defined:
| @Stateless | @RemoteBinding(jndiBinding="XXXCommandRemote") | public class XXXCommandBean implements XXXCommandRemote | { | static Logger logger = Logger.getLogger(XXXCommandBean.class); | | @Resource TimerService timerService; | | public void scheduleCommand(Command command) | { | timerService.createTimer(command.getDuration(), command); | } | | public void scheduleContinousCommand(Command command) | { | timerService.createTimer(command.getDuration(), command.getDuration(), command); | } | | @Timeout | public void runCommand(Timer timer) | { | Command command = (Command) timer.getInfo(); | | logger.debug("runCommand: Firing command for user: " + command.getUserId() + " " + command.getDescription()); | | User user = null; | | System.setProperty("java.security.policy", "server.policy"); | if (System.getSecurityManager() == null) | { | System.setSecurityManager(new RMISecurityManager()); | } | | InitialContext jndiContext; | try | { | jndiContext = getInitialContext(); | UserRemote playerRef = (UserRemote) jndiContext.lookup("UserRemote"); | USerRemote dao = (UserRemote) PortableRemoteObject.narrow(playerRef, UserRemote.class); | user = dao.findUser(command.getUserId()); | } | catch (NamingException e) | { | logger.error("NamingException: ", e); | } | ... | This seems to work fine in normal cases. However, if I have a command scheduled for the future, and then restart the app server I get the following error when the Timeout hook runs: | 2009-02-19 08:31:04,125 DEBUG [org.jboss.ejb3.proxy.objectfactory.session.SessionProxyObjectFactory] (EJB-Timer-1235057250689[target=jboss.j2ee:ear=feudalism.ear,jar=feudalism | -beans.jar,name=XXXCommandBean,service=EJB3]) Created Proxy of type $Proxy140 for EJB3 Business Interface: com.feudalism.session.user.UserRemote | 2009-02-19 08:31:04,125 ERROR [com.feudalism.session.user.UserBean] (EJB-Timer-1235057250689[target=jboss.j2ee:ear=feudalism.ear,jar=feudalism-beans.jar,name=XXXCommandBean,service=EJB3]) NamingException: | javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Can not find interface declared by Proxy in our CL + BaseClassLoader@ | 13c72d{vfsfile:/C:/java/jboss-5.0.0.GA/jboss-5.0.0.GA/server/feudalism/deploy/ejb2-timer-service.xml}] | at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1463) | at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:809) | at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:673) | at javax.naming.InitialContext.lookup(InitialContext.java:351) | at com.feudalism.session.command.XXXCommandBean.runCommand(XXXCommandBean.java:92) | This is happening during lookup: UserRemote playerRef = (UserRemote)jndiContext.lookup("UserRemote"); View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4211527#4211527 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4211527 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user