Search code examples
jakarta-eeweblogicdatasourcejndi

How to access JNDI data source defined in weblogic 10.3.6


I have created a JNDI data-source using my weblogic console but I am not able to access the object from my web application. Below are the details

In weblogic 10.3.6, I have given the JNDI name for datasource as : jdbc/mydb

To get DB connection from my web application I have written this code in my web application:

Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/mydb");
jndiConnection = ds.getConnection();

Earlier I was using Tomcat as server and I was able to get DB connection when I configured the resource details in the file tomcat/conf/server.xml, but when I am using started using weblogic server I am getting below error:

Cannot establish DB connection to JNDI:java:/comp/env/jdbc/mydb While trying to look up /comp/env/jdbc/mydb in /app/webapp/sample.war/1811641702. caused by: javax.naming.NameNotFoundException: While trying to look up /comp/env/jdbc/mydb in /app/webapp/sample.war/1811641702.; remaining name '/comp/env/jdbc/mydb'

I have tried the options mentioned in this link : How to lookup JNDI resources on WebLogic? but still I am facing problems.

Please let me know where I am doing mistake, what is the process of accessing the JNDI object.


Solution

  • After referring to the post:Tomcat vs Weblogic JNDI Lookup I have modified my code.

    Using below code in my java program of web application has solved my issue:

    Context initContext = new InitialContext();
    DataSource ds = (DataSource)initContext.lookup("jdbc/mydb");
    jndiConnection = ds.getConnection();
    

    Also in weblogic console I have added my JNDI object to my Admin Server (under servers option) where my web application is deployed.