I get below errors when I look up JNDI connection for jdbc data source:
javax.naming.ConfigurationException: The JNDI operation in the name "java:" cannot be completed because server runtime cannot associate the workflow with any component of the J2EE application. This condition may occur when a JNDI client using the name "java:" is not executed in the request flow for a server request. Make sure that the J2EE application does not perform JNDI operations with the names "java:" in the static blocks of code or in the threads created by this J2EE application. Such code does not necessarily run in the request stream for a server request and therefore is not supported by JNDI operations in the names "java:". [Javax.naming.NameNotFoundException root exception: Name not found in context "java:".]
My search code is inside a static method. This is the reason for this error. I do not create threads
It works in tomcat without any problems
thanks for the help
The code I use is as follows:
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); Context cxt = (Context) ctx.lookup("java:/comp/env/");
Stacktrace:
C1APP522 2 2013-07-01 21:57:18,332 ERROR DBUtil get EnvContext failed javax.naming.ConfigurationException: A JNDI operation on a "java:" name cannot be completed because the server runtime is not able to associate the operation thread with any J2EE application component. This condition can occur when the JNDI client using the "java:" name is not executed on the thread of a server application request. Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application. Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names. [Root exception is javax.naming.NameNotFoundException: Name not found in context "java:".] at com.ibm.ws.naming.java.javaURLContextImpl.throwConfigurationExceptionWithDefaultJavaNS(javaURLContextImpl.java:428) at com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:399) at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:220) at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:160) at javax.naming.InitialContext.lookup(InitialContext.java:436) at com.test.integration.database.DBUtil_Ext.getEnvContext(DBUtil_Ext.java:121) at com.test.integration.database.DBUtil_Ext.getDataSource(DBUtil_Ext.java:102) at com.test.integration.database.DBUtil_Ext.getConnection(DBUtil_Ext.java:70) at com.test.integration.IntegrationTransportPlugin_Ext.send(IntegrationTransportPlugin_Ext.java:107) at com.test.integration.IntegrationTransportPlugin_Ext.send(IntegrationTransportPlugin_Ext.gs) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.test.system.integration.plugins.PluginProxy.invoke(PluginProxy.java:66) at $Proxy58.send(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.test.system.integration.plugins.PluginCallTraceImpl$PluginCallTraceHandler.invoke(PluginCallTraceImpl.java:61) at $Proxy58.send(Unknown Source) at com.test.system.integration.messaging.dispatch.MessageWriter$2.run(MessageWriter.java:347) at com.test.system.transaction.ScopedUserTransaction.run(ScopedUserTransaction.java:54) at com.test.system.transaction.TransactionManagerImpl.execute(TransactionManagerImpl.java:111) at com.test.system.integration.messaging.dispatch.AckHelper.executeMessageOperation(AckHelper.java:137) at com.test.system.integration.messaging.dispatch.AckHelper.executeMessageOperation(AckHelper.java:121) at com.test.system.integration.messaging.dispatch.MessageWriter.executeSendAndAfterSendInTxn(MessageWriter.java:332) at com.test.system.integration.messaging.dispatch.MessageWriter.sendNextMessage(MessageWriter.java:272) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.trySendMessage(MessageSenderRunnable.java:52) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.send(MessageSenderRunnable.java:42) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.run(MessageSenderRunnable.java:30) at com.test.system.integration.messaging.dispatch.MessageWriter$CatchesExceptionRunnable.run(MessageWriter.java:603) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) at java.util.concurrent.FutureTask.run(FutureTask.java:149) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:736) Caused by: javax.naming.NameNotFoundException: Name not found in context "java:". at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1837) at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1166) at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1095) at com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1233) at com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:395) ... 37 more C1APP522 2013-07-01 21:57:18,332 ERROR Messaging Exception in MessageSenderRunnable java.lang.RuntimeException: get EnvContext failed at com.test.integration.database.DBUtil_Ext.getEnvContext(DBUtil_Ext.java:125) at com.test.integration.database.DBUtil_Ext.getDataSource(DBUtil_Ext.java:102) at com.test.integration.database.DBUtil_Ext.getConnection(DBUtil_Ext.java:70) at com.test.integration.IntegrationTransportPlugin_Ext.send(IntegrationTransportPlugin_Ext.java:107) at com.test.integration.IntegrationTransportPlugin_Ext.send(IntegrationTransportPlugin_Ext.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.test.system.integration.plugins.PluginProxy.invoke(PluginProxy.java:66) at $Proxy58.send(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:611) at com.test.system.integration.plugins.PluginCallTraceImpl$PluginCallTraceHandler.invoke(PluginCallTraceImpl.java:61) at $Proxy58.send(Unknown Source) at com.test.system.integration.messaging.dispatch.MessageWriter$2.run(MessageWriter.java:347) at com.test.system.transaction.ScopedUserTransaction.run(ScopedUserTransaction.java:54) at com.test.system.transaction.TransactionManagerImpl.execute(TransactionManagerImpl.java:111) at com.test.system.integration.messaging.dispatch.AckHelper.executeMessageOperation(AckHelper.java:137) at com.test.system.integration.messaging.dispatch.AckHelper.executeMessageOperation(AckHelper.java:121) at com.test.system.integration.messaging.dispatch.MessageWriter.executeSendAndAfterSendInTxn(MessageWriter.java:332) at com.test.system.integration.messaging.dispatch.MessageWriter.sendNextMessage(MessageWriter.java:272) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.trySendMessage(MessageSenderRunnable.java:52) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.send(MessageSenderRunnable.java:42) at com.test.system.integration.messaging.dispatch.MessageSenderRunnable.run(MessageSenderRunnable.java:30) at com.test.system.integration.messaging.dispatch.MessageWriter$CatchesExceptionRunnable.run(MessageWriter.java:603) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) at java.util.concurrent.FutureTask.run(FutureTask.java:149) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:736)
source share