2012-09-27 9 views
8

Po prostu przeniesiony z Tomcat 6 na Tomcat 7 i zauważyłem, że po wdrożeniu aplikacji webowej o nazwie widget, kontekst META-INF /. xml nie jest już kopiowany do conf/Catalina/localhost/widget.xml.W Tomcat 7, musisz skopiować plik context.xml do katalogu conf/Catalina/locahost, aby mógł on zadziałać.

Co Im niejasne o to, czy to musi być, będą ustawienia w context.xml być stosowane, jeżeli pozostaje w META-INF czy mają one wpływ tylko jeśli przeniósł się do conf/Catalina/localhost/widget.xml

Im używając waniliowy tomcat 7 instalacja

Odpowiedz

10

Patrz documentation (podkreślenie moje):

Poszczególne elementy kontekście może być jednoznacznie zdefiniowane:

  • W pliku indywidualnym pod numerem /META-INF/context.xml w plikach aplikacji . Opcjonalnie (na podstawie atrybutu hosta copyXML o numerze) może to być skopiowana do $CATALINA_BASE/conf/[enginename]/[hostname]/ i zmieniona na nazwę podstawowego pliku aplikacji aplikacji z rozszerzeniem ".xml".

Dokumentacja Host ma do powiedzenia na copyXML:

ustawiona na wartość true, jeśli chcesz deskryptora XML kontekst osadzony wewnątrz aplikacji (znajduje się na /META-INF/context.xml) mają być skopiowane do xmlBase po wdrożeniu aplikacji. Przy kolejnych uruchomieniach skopiowany deskryptor XML kontekstu o nazwie będzie używany zamiast dowolnego deskryptora XML określonego kontekstu osadzonego wewnątrz aplikacji, nawet jeśli deskryptor osadzony w aplikacji jest nowszy. Wartość flagi jest ustawiona na wartość false. Zauważ, że jeśli deployXML ma wartość false, ten atrybut będzie miał wartość .

+0

Powinienem powiedzieć, że już na to patrzyłem i zauważyłem atrybut copyXML, ale to nie odpowiada na moje pytanie. Powtarzam, jeśli po prostu zostawiam plik context.xml w META-INF, czy ma on tylko efekt, jeśli zostanie zmieniony i skopiowany do $ CATALINA_BASE/conf/[nazwa_winika]/[nazwa_hosta]/ –

+0

Tak, to robi. Mówi to tuż przed częścią, którą zacytowałem "Pojedyncze elementy kontekstu mogą być jednoznacznie zdefiniowane:". Jeśli "można go zdefiniować w indywidualnym pliku w /META-INF/context.xml", oczywiście Tomcat go odbierze.Kopiowanie pod $ CATALINA_BASE/conf jest po to, aby zobaczyć wszystkie konfiguracje zgrupowane w tym samym miejscu. Poza tym, nie próbowałeś? –

+0

Więcej dokumentacji: copyXML jest faktycznie używany do ładowania konfiguracji pod $ CATALINA_BASE/conf, który jest używany podczas kolejnych uruchomień. –

1

Rozumiem, że kontekst.xml w META-INF jest używany, chyba że element deployXML jest ustawiony na false. Uwaga od Tomcat 7 docs domyślnie jest true, chyba że włączony jest menedżer bezpieczeństwa!

Jednak z docs, byłem pod wrażeniem, że ustawienie atrybutu copyXML w samej context.xml (bez dotykania server.xml) spowoduje, że plik, który ma zostać skopiowany do konf:

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

Jednakże, używając Tomcat 7, wydaje się, że plik nie zostanie skopiowany do conf, chyba że copyXML jest ustawiony na true na tym, jak Frank odpowiedział powyżej.

Powiązane problemy