Utworzyłem źródło danych JNDI przy użyciu mojej konsoli weblogic, ale nie mam dostępu do obiektu z mojej aplikacji internetowej. Poniżej znajdują się szczegółyJak uzyskać dostęp do źródła danych JNDI zdefiniowanego w weblogic 10.3.6
W weblogic 10.3.6 dałem nazwę JNDI dla źródła danych jak: jdbc/mydb
Aby uzyskać połączenie DB z mojej aplikacji internetowej Pisałem ten kod w mojej aplikacji internetowej:
Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/mydb");
jndiConnection = ds.getConnection();
Wcześniej używałem Tomcat jako serwera i udało mi się uzyskać połączenie DB kiedy skonfigurowane szczegóły zasobów w pliku tomcat/conf/server.xml
, ale kiedy używam zaczął używać serwera WebLogic otrzymuję poniżej błędu:
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'
Próbowałem opcji wymienionych w tym linku: How to lookup JNDI resources on WebLogic?, ale nadal mam problemy.
Proszę dać mi znać, gdzie popełniłem błąd, jaki jest proces dostępu do obiektu JNDI.
Czy chodziło Ci nazwać go "jdbc/mydb" zamiast "java/mydb"? –
@better_use_mkstemp Tak, zaktualizowałem moje pytanie, dzięki za wskazanie. – chaitanya
Czy próbowałeś też drugiego rozwiązania w łączu w swoim pytaniu? Pierwsza odpowiedź dotyczy Tomcata, ale nie jestem pewien, czy zawsze działa w weblogic. Usuń java: comp/env/i spróbuj initContext.lookup ("jdbc/mydb")? –