Đối với các tập tin bạn liệt kê, câu trả lời đơn giản giả sử bạn đang sử dụng tất cả các giá trị mặc định, các lệnh được (chú ý conf/Catalina/localhost):
...tomcat/conf/context.xml
...tomcat/conf/Catalina/localhost/myapp.xml
...tomcat/webapps/myapp/META-INF/context.xml
tôi dựa này (và các thảo luận sau) trên Tomcat 5.5 official documentation for the Context Container.
Vì vậy, nếu đó là câu trả lời đơn giản, thì câu trả lời hoàn chỉnh là gì?
Tomcat 5.5. sẽ xem xét một vài địa điểm khác cho các phần tử <Context>
ngoài những yếu tố bạn đã liệt kê (xem tài liệu chính thức).
META-INF/context.xml
sẽ không bao giờ được mở nếu Tomcat tìm thấy Catalina/localhost/myapp.xml
. Vì vậy, nếu bạn thực sự có tất cả các tệp ở trên, thì chính xác hơn để nói rằng số META-INF/context.xml
là không liên quan, không phải đó là ưu tiên thấp nhất.
Nếu bạn nói <Context override="true" ...>
trong số Catalina/localhost/myapp.xml
của bạn sẽ làm cho ưu tiên là cao nhất, bất kể conf/context.xml
.Điều tương tự trong số META-INF\context.xml
của bạn, miễn là bạn không có Catalina/localhost/myapp.xml
(xem đoạn trước).
Ngoài ra, phần /Catalina/localhost/
của đường dẫn trong các tệp ở trên thực tế xuất phát từ "mặc định" conf/server.xml
và khớp với <Engine name="Catalina" defaultHost="localhost">
. Nếu số server.xml
của bạn sử dụng các giá trị khác nhau cho name
và defaultHost
trong <Engine>
, đó là cấu trúc thư mục mà Tomcat sẽ xem xét.
Cuối cùng, đối với phần ...tomcat\
của các tệp bạn đã liệt kê, Tomcat sử dụng thư mục từ biến môi trường $CATALINA_BASE
. Nếu không được thiết lập, thì nó sẽ sử dụng thư mục từ biến môi trường $CATALINA_HOME
, đó là thư mục cài đặt Tomcat. Tôi thích thiết lập và sử dụng $CATALINA_BASE
để tôi không "gây ô nhiễm" cài đặt Tomcat của mình.
Wow, một câu trả lời rất chi tiết và ấn tượng. Cảm ơn bạn. – Ittai