Tôi đã tạo nguồn dữ liệu JNDI bằng bảng điều khiển weblogic nhưng tôi không thể truy cập đối tượng từ ứng dụng web của mình. Dưới đây là các chi tiếtCách truy cập nguồn dữ liệu JNDI được xác định trong weblogic 10.3.6
Trong WebLogic 10.3.6, tôi đã đưa tên JNDI cho nguồn dữ liệu như: jdbc/mydb
Để có được kết nối DB từ ứng dụng web của tôi, tôi đã viết mã này trong ứng dụng web của tôi:
Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/mydb");
jndiConnection = ds.getConnection();
Trước đó tôi đã sử dụng Tomcat như máy chủ và tôi đã có thể để có được kết nối DB khi tôi cấu hình các chi tiết tài nguyên trong file tomcat/conf/server.xml
, nhưng khi tôi đang sử dụng bắt đầu sử dụng máy chủ WebLogic tôi nhận được dưới đây lỗi:
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'
Tôi đã thử các tùy chọn được đề cập trong liên kết này: How to lookup JNDI resources on WebLogic? nhưng tôi vẫn đang gặp sự cố.
Vui lòng cho tôi biết nơi tôi đang làm sai, quy trình truy cập đối tượng JNDI là gì.
có phải bạn muốn đặt tên cho nó là "jdbc/mydb" thay vì "java/mydb"? –
@better_use_mkstemp vâng, tôi đã cập nhật câu hỏi của mình, Cảm ơn bạn đã trỏ nó. – chaitanya
Bạn cũng đã thử giải pháp thứ hai trong liên kết trong câu hỏi của mình chưa? Câu trả lời đầu tiên áp dụng cho Tomcat nhưng tôi không chắc chắn rằng nó luôn hoạt động trong weblogic. Xóa java: comp/env/và thử initContext.lookup ("jdbc/mydb")? –