2012-09-27 8 views
8

Chỉ cần chuyển từ Tomcat 6 sang Tomcat 7 và nhận thấy rằng khi bạn triển khai một ứng dụng web được gọi là widget META-INF/context. xml không còn được sao chép vào conf/Catalina/localhost/widget.xml nữa.Trong Tomcat 7, bạn cần phải copy context.xml vào conf/Catalina/locahost để nó có hiệu lực

Điều mà Im không rõ ràng là liệu nó có cần thiết hay không, các cài đặt trong context.xml có được sử dụng nếu để trong META-INF hoặc chúng chỉ có hiệu lực nếu được chuyển đến conf/Catalina/localhost/widget.xml

Im sử dụng một vani tomcat 7 cài đặt

Trả lời

10

Xem documentation (tôi nhấn mạnh):

yếu tố bối cảnh cá nhân có thể được định nghĩa một cách rõ ràng:

  • Trong một tệp riêng lẻ tại /META-INF/context.xml bên trong ứng dụng tệp. Tùy chọn (dựa trên thuộc tính copyXML của Máy chủ) này có thể được sao chép vào $CATALINA_BASE/conf/[enginename]/[hostname]/ và đổi tên thành tên tệp cơ sở của ứng dụng cộng với phần mở rộng ".xml".

Các tài liệu cho Host đã này để nói về copyXML:

Set true nếu bạn muốn có một mô tả bối cảnh XML nhúng bên trong ứng dụng (nằm ở /META-INF/context.xml) để được sao chép vào xmlBase khi ứng dụng được triển khai. Khi bắt đầu tiếp theo, phần mô tả XML bối cảnh được sao chép sẽ được sử dụng tùy theo bất kỳ ngữ cảnh nào XML được nhúng bên trong ứng dụng ngay cả khi bộ mô tả được nhúng bên trong ứng dụng gần đây hơn. Giá trị của cờ mặc định là sai. Lưu ý nếu deployXML là false, thuộc tính này sẽ không có hiệu lực.

+0

Tôi nên nói rằng Ive đã xem xét điều này và nhận thấy thuộc tính copyXML, nhưng điều này không trả lời được câu hỏi của tôi. Để nhắc lại nếu tôi chỉ để context.xml trong META-INF được sử dụng, hoặc nó chỉ có tác dụng nếu nó được đổi tên và sao chép thành $ CATALINA_BASE/conf/[enginename]/[tên máy chủ]/ –

+0

Có. Nó nói ngay trước phần tôi trích dẫn "Yếu tố ngữ cảnh cá nhân có thể được xác định rõ ràng:". Nếu nó có thể "được định nghĩa trong một tệp riêng lẻ tại /META-INF/context.xml", rõ ràng Tomcat sẽ chọn nó.Việc sao chép dưới $ CATALINA_BASE/conf chỉ để bạn có thể xem tất cả các cấu hình được nhóm trong cùng một vị trí. Bên cạnh đó, bạn không thử? –

+0

Tài liệu khác: copyXML thực sự được sử dụng để khởi động cấu hình dưới $ CATALINA_BASE/conf, là cái được sử dụng trong lần khởi động lại tiếp theo. –

1

Khi tôi hiểu nó, context.xml trong META-INF được sử dụng trừ khi phần tử deployXML được đặt thành false. Lưu ý từ số Tomcat 7 docs, mặc định là true trừ khi người quản lý bảo mật được bật!

Tuy nhiên, từ các tài liệu, tôi đã có ấn tượng rằng thiết lập các thuộc tính trong copyXML context.xml bản thân (không có server.xml cảm động) sẽ gây ra các tập tin được sao chép vào conf:

<Context antiJARLocking="true" path="/widget" copyXML="true" /> 

Tuy nhiên, bằng cách sử dụng Tomcat 7, có vẻ như tệp không được sao chép thành conf trừ khi copyXML được đặt thành true trên như Frank đã trả lời ở trên.