public class ReferenceDataTimer extends TimerTask
{
private static ReferenceDataTimer refDataTimerTask = new ReferenceDataTimer();
private Timer refDataTimer = null;
public void start()
{
refDataTimer = new Timer();
refDataTimer.schedule(refDataTimerTask, DELAY, refreshTime*PERIOD);
}
@Override
public void run()
{
// Get DB connection using
// InitialContext lookup
// using resource reference
=> This is where it is failing. lookup is not working from this run() method of timer task.
// Then load the data to cache
}
}
public class ReferenceDataManager implements ServletContextListener {
// Invoking ReferenceDataTimer -> start() method.
}
在使用资源引用从服务器上下文获取数据源连接时,我收到了JNDI查找错误。请注意,如果我不使用TimerTask
,则“查找”是有效的。
javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“java:”名称执行JNDI操作。这样的代码不一定在服务器应用程序请求的线程上运行,因此在“java:”名称上的JNDI操作不支持这些代码。
有谁能提出建议吗?如果无法在java中获取资源(在服务器上下文中可用)。util。计时器
taskrun()。我甚至尝试了
java。util。同时发生的ScheduledExecutorService
-
您不应该在EJB应用程序中使用TimerTask
,因为这将创建并启动自定义线程,这在Java EE环境中是不允许的。
相反,请使用
TimerService
。它是JavaEE标准的一部分。
http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html
如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含
在查找jdbc数据源的JNDI连接时,我遇到以下错误: javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“
问题:似乎无法通过spring在Webphsere服务器中执行jndi查找EJB3。一直找不到我的jndi名称。我看不出我做错了什么。对于Websphere,您是否必须为jndi名称查找添加不同的内容? 堆栈溢出参考问题-EJB3注入Springbean 版本: Spring版本:4.1.2 WebSphereServer版本:7.0.0.27 Spring错误: 创建名为'myLocalEjb'
我使用Liberty Profile v8.5.5.5(WebSphere Application Server8.5.5.5/wlp-1.0.8.cl50520150221-0034)IBMJ9 VM,版本pxa6470sr1-20120330_01(SR1)(en_US) 我已经安装了jndi功能。。。但无论我做什么,我都无法进行简单的JNDI查找。 在我server.xml 我的代码...(
我是JavaEE6和JNDI新手,所以如果我的问题看起来微不足道,请原谅我 我已经添加了一个自定义资源Glassfish 3.1.2 JNDI资源通过该管理控制台: 共同任务- JNDI名称:someNumber 现在,我希望在作为ear部署到glassfish服务器的JavaEE应用程序中查找此资源。我试过这个,但运气不好: 我一直得到一个NameNotFoundExcema。你能告诉我我做错了
我的代码无法使用JNDI查找JDBC资源。我得到以下异常: [根异常是javax.naming.nameNotFoundException:context:ppp-14415node01cell/nodes/ppp-14415node01/servers/server1,name:jdbc/admincob:未找到名称admincob中的第一个组件。[根异常是org.omg.cosnaming.n