java: comp / env là gì?


81

nghĩa là java:comp/envgì?

Tìm kiếm như thế nào:

Context envContext = (Context)initContext.lookup("java:comp/env");

làm gì?

Tôi hiểu rằng một cái nhìn như:

(DataSource)envContext.lookup("jdbc/MyDatasource")

tìm kiếm tên MyDatasourcetrong context.xmlhoặc web.xmlđể lấy URL của cơ sở dữ liệu. Có phải vậy không? !! Nhưng cái nhìn trước để làm gì?


1
bản sao có thể xảy ra của java: comp / env / do gì?
Marko Topolnik

4
@Marko Topolnik nhưng điều đó không trả lời câu hỏi của tôi.
saplingPro

3
Vui lòng mở và đọc liên kết trước khi bỏ phiếu để đóng câu hỏi này. Đừng chỉ chạy theo tiêu đề.
saplingPro

1
Nó chắc chắn giống như một câu trả lời cho tôi. Đó là một không gian tên gốc được cung cấp bởi các thùng chứa để bạn có thể tìm kiếm các nguồn lực của bạn trong.
Marquis của Lorne

Đây là một câu hỏi hay cho những người cố gắng để di chuyển từ WebLogic để Tomcat ví dụ
ACV

Câu trả lời:


73

java:comp/env là nút trong cây JNDI nơi bạn có thể tìm thấy các thuộc tính cho thành phần Java EE hiện tại (một ứng dụng web hoặc một EJB).

Context envContext = (Context)initContext.lookup("java:comp/env");

cho phép xác định một biến trỏ trực tiếp đến nút này. Nó cho phép làm

SomeBean s = (SomeBean) envContext.lookup("ejb/someBean");
DataSource ds = (DataSource) envContext.lookup("jdbc/dataSource");

hơn là

SomeBean s = (SomeBean) initContext.lookup("java:comp/env/ejb/someBean");
DataSource ds = (DataSource) initContext.lookup("java:comp/env/jdbc/dataSource");

Đường dẫn tương đối thay vì đường dẫn tuyệt đối. Đó là những gì nó được sử dụng.


Những gì được này nút có nghĩa là gì? Sẽ có nhiều nút trong cây JNDI.
saplingPro

7
Tôi vẫn không có cảm giác thực sự là gì java:comp/env.
saplingPro

9
Mỗi thành phần JEE (ứng dụng web, EJB) có thể xác định các thuộc tính cục bộ cho thành phần này. Và các thuộc tính này có thể truy cập thông qua java:comp/env. Xem tomcat.apache.org/tomcat-7.0-doc/… chẳng hạn. EJB có cùng một loại.
JB Nizet

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.