Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JNDI Lookup Error in Websphere

 
Sankar Tanguturi
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I am trying to lookup a datasource from my J2EE application that has 2 jar files and a war file. I have a DataSource defined in Websphere with JNDI name as com/agac/eproposal/DataSource. In Application Assembly Tool (AAT), I defined a reference to it from WAR as Name : jdbc/eproposalDS which is Bound to : com/agac/eproposal/DataSource.
In my servlet, I am trying to look it up as
ds = (DataSource)(new InitialContext().lookup("java:comp/env/jdbc/eproposalDS");
This works on one machine running Websphere Advanced Edition 4.0 on Solaris. But on my local machine running WAE 4.0 on Windows NT, this gives the following error :
javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1443)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:824)
at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1166)
at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1158)
at com.ibm.ws.naming.urlbase.UrlContext.lookup(UrlContext.java:1210)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.agac.eproposal.util.JDBCUtil.Init(JDBCUtil.java:155)
at com.agac.eproposal.util.JDBCUtil.GetConnection(JDBCUtil.java:54)
at com.agac.eproposal.util.SystemConfig.Load(SystemConfig.java:263)
at com.agac.eproposal.util.SystemConfig.Get(SystemConfig.java:95)
at com.agac.eproposal.control.EProposal.init(EProposal.java:103)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doInit(ServletManager.java:802)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._init(StrictLifecycleServlet.java:137)
at com.ibm.servlet.engine.webapp.PreInitializedServletState.init(StrictLifecycleServlet.java:243)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.init(StrictLifecycleServlet.java:103)
at com.ibm.servlet.engine.webapp.ServletInstance.init(ServletManager.java:388)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at com.ibm.servlet.engine.webapp.ServletManager.addServlet(ServletManager.java:84)
at com.ibm.servlet.engine.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:226)
at com.ibm.servlet.engine.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:357)
at com.ibm.servlet.engine.webapp.WebApp.loadServletManager(WebApp.java:1001)
at com.ibm.servlet.engine.webapp.WebApp.init(WebApp.java:133)
at com.ibm.servlet.engine.srt.WebGroup.loadWebApp(WebGroup.java:234)
at com.ibm.servlet.engine.srt.WebGroup.init(WebGroup.java:139)
at com.ibm.servlet.engine.ServletEngine.addWebApplication(ServletEngine.java:633)
at com.ibm.ws.runtime.WebContainer.install(WebContainer.java:36)
at com.ibm.ws.runtime.Server.startModule(Server.java:615)
at com.ibm.ejs.sm.active.ActiveModule.startModule(ActiveModule.java:509)
at com.ibm.ejs.sm.active.ActiveModule.startAction(ActiveModule.java:355)
at com.ibm.ejs.sm.active.ActiveObject.startObject(ActiveObject.java:709)
at com.ibm.ejs.sm.active.ActiveObject.start(ActiveObject.java:131)
at com.ibm.ejs.sm.active.ActiveObject.operateOnContainedObjects(ActiveObject.java:609)
at com.ibm.ejs.sm.active.ActiveEJBServer.startAction(ActiveEJBServer.java:730)
at com.ibm.ejs.sm.active.ActiveObject.startObject(ActiveObject.java:709)
at com.ibm.ejs.sm.active.ActiveObject.start(ActiveObject.java:131)
at java.lang.reflect.Method.invoke(Native Method)
at com.ibm.ejs.sm.agent.AdminAgentImpl.activeObjectInvocation(AdminAgentImpl.java:93)
at com.ibm.ejs.sm.agent.AdminAgentImpl.invokeActiveObject(AdminAgentImpl.java:62)
at com.ibm.ejs.sm.agent._AdminAgentImpl_Tie._invoke(_AdminAgentImpl_Tie.java:80)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java:506)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:2294)
at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:185)
at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run(ThreadPool.java:95)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122).
Also, if I change the lookup code to
ds = (DataSource)(new InitialContext().lookup("com/agac/eproposal/DataSource"); there are no errors.
I did not notice any differences in the settings for the two installations. The ear on both the machines is same. Any help is appreciated.
Thanks,
Sankar
sankara_tanguturi@yahoo.com
 
Patrick Finnegan
Ranch Hand
Posts: 179
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try using the WebSphere dunpnamespace utility to list the JNDI names in the name space and see if they match the lookup.
 
Sankar Tanguturi
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I did a dump of namespace on unix as well as my local NT machine. The relevant entries seem to be identical. Like I mentioned earlier,looking up with the data source reference works on Unix installation but not the one on NT.
 
Balbir Singh
Ranch Hand
Posts: 79
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please make sure that JAVA_HOME is pointing to WebSphere's JDK. We had faced a similar problem on NT since our JAVA_HOME was pointing to Weblogic's JDK. After rectifing it, things started working. Hope it helps !!!
 
Sankar Tanguturi
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I did have my JAVA_HOME pointing to sun JDK, which I changed to point to Websphere's JDK. That did not help. I also noticed in the log the following error which seems to say that the bindings were not loaded.
[03.02.20 16:56:28:861 EST] 3d1326d8 ServletEngine A SRVE0169I: Loading Web Module: <null>.
[03.02.20 16:56:29:071 EST] 3d1326d8 WebApp X SRVE0142E: Failed to load WebApp Bindings javax.naming.InvalidNameException: Null names are not allowed.
at com.ibm.ws.naming.util.WsnName.setName(WsnName.java:930)
at com.ibm.ws.naming.util.WsnName.<init>(WsnName.java:184)
at com.ibm.ws.naming.util.WsnNameParser.parse(WsnNameParser.java:96)
at com.ibm.servlet.engine.webapp.WebApp.createContextsAndRebind(WebApp.java:895)
at com.ibm.servlet.engine.webapp.WebApp.populateJavaNameSpace(WebApp.java:842)
at com.ibm.servlet.engine.webapp.WebApp.init(WebApp.java:125)
at com.ibm.servlet.engine.srt.WebGroup.loadWebApp(WebGroup.java:234)
at com.ibm.servlet.engine.srt.WebGroup.init(WebGroup.java:139)
at com.ibm.servlet.engine.ServletEngine.addWebApplication(ServletEngine.java:633)
at com.ibm.ws.runtime.WebContainer.install(WebContainer.java:36)
at com.ibm.ws.runtime.Server.startModule(Server.java:615)
at com.ibm.ejs.sm.active.ActiveModule.startModule(ActiveModule.java:509)
at com.ibm.ejs.sm.active.ActiveModule.startAction(ActiveModule.java:355)
at com.ibm.ejs.sm.active.ActiveObject.startObject(ActiveObject.java:709)
at com.ibm.ejs.sm.active.ActiveObject.start(ActiveObject.java:131)
at com.ibm.ejs.sm.active.ActiveObject.operateOnContainedObjects(ActiveObject.java:609)
at com.ibm.ejs.sm.active.ActiveEJBServer.startAction(ActiveEJBServer.java:730)
at com.ibm.ejs.sm.active.ActiveObject.startObject(ActiveObject.java:709)
at com.ibm.ejs.sm.active.ActiveObject.start(ActiveObject.java:131)
at java.lang.reflect.Method.invoke(Native Method)
at com.ibm.ejs.sm.agent.AdminAgentImpl.activeObjectInvocation(AdminAgentImpl.java:93)
at com.ibm.ejs.sm.agent.AdminAgentImpl.invokeActiveObject(AdminAgentImpl.java:62)
at com.ibm.ejs.sm.agent._AdminAgentImpl_Tie._invoke(_AdminAgentImpl_Tie.java:80)
at com.ibm.CORBA.iiop.ExtendedServerDelegate.dispatch(ExtendedServerDelegate.java:506)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:2294)
at com.ibm.CORBA.iiop.OrbWorker.run(OrbWorker.java:185)
at com.ibm.ejs.oa.pool.ThreadPool$PooledWorker.run(ThreadPool.java:95)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
-Sankar
 
Tony Chen
Ranch Hand
Posts: 286
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
try this:
ds = (DataSource)(new InitialContext().lookup("jdbc/eproposalDS");
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic