Я использую EJB3.0 jboss5.1ASНе удалось создать таймер на Jboss5
У меня есть некоторые странные проблемы, которые случаются вратаря раньше. Я пытаюсь проверить свою фабулу ajb без гражданства.
Я использовал для имитации вызова ejb с сервлета, который был внутри моего уха (внутри проекта WAR), и все работало нормально.
Сейчас мы пытаемся проверить этот EJB через сервлет, который находится вне EAR от extrnal сервера Tomcat, делая EJB-Call
и вдруг я получаю это исключение:
7 May 12 13:13:11, ERROR DispactherBean:dispatchMsg:113 Exception. The error msg=Failed to create timer
javax.ejb.EJBException: Failed to create timer
at org.jboss.ejb.txtimer.TimerServiceImpl.createTimer(TimerServiceImpl.java:263)
at org.jboss.ejb.txtimer.TimerServiceImpl.createTimer(TimerServiceImpl.java:171)
at org.jboss.as.ejb3.timerservice.TimerServiceFacade.createTimer(TimerServiceFacade.java:83)
at DispactherBean.dispatchMsg(DispactherBean.java:94)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
. ...
Я запуск моего таймера так:
@Stateless
@Remote(
{ DispactherBeanRemote.class })
@RemoteBinding(jndiBinding = "DispactherBean")
public class DispactherBean implements DispactherBeanRemote, Serializable
{
private static final long serialVersionUID = 1L;
private final static Logger logger = Logger.getLogger(DispactherBean.class);
@Resource
private TimerService timerService;
public void someMethod()
{
timerService.createTimer(MomConstants.TRX_TIMEOUT_PERIOD,"test");
}
..
}
Я называю г этот компонент из TOMCAT/автономного этот путь:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jboss.ip:1099");
InitialContext context = new InitialContext(p);
String lookupStr = "Mom/DispactherBean/remote-mom.beans.DispactherBeanRemote";
DispactherBeanRemote dispactherBean = (DispactherBeanRemote) context.lookup(lookupStr);
dispactherBean.someMethod();
}
catch (Exception e)
{
e.printStackTrace();
}
Можете ли вы добавить дополнительную информацию о том, как вы вызываете bean-компонент из сервлета, также вы попытались использовать 'SessionContext' для создания таймера. –
Okie Я отредактирую вопрос. и да, я попробовал SessionContext. Не работает. – rayman