2017-02-21 40 views
0

это меня озадачивает: хотя unpackWARs установлен в 'true' в /etc/tomcat7/server.xml, а unpackWAR не может быть найден нигде (включая context.xml), WAR продолжает оставаться упакованным. Он никогда не распаковывается!Как война не распаковывается, хотя unpackWar имеет значение true?

<Host name="localhost" appBase="webapps" 
     unpackWARs="true" autoDeploy="true"> 

VM - это клон от другого, где война распаковывается, как только начинается tomcat. Таким образом, конфигурация должна быть точно такой же ... и я не могу понять, почему она действует по-другому!

Есть ли другое место (но для server.xml и context.xml), в котором говорится, нужно ли распаковывать войны или нет? Любой намек на то, где я должен смотреть, или как я могу гарантировать, что война распакована?

Спасибо за ваше чтение и помощь!

+0

что сказать в Catalina.out? Есть ли какие-либо ошибки перед развертыванием войны? Если все правильно загружается, некоторые строки о времени развертывания должны быть последними в Catalina.out, если вы очистите свои журналы, а затем перезапустите Tomcat с помощью WAR в папке webapps. –

+0

Усман, прошу прощения за поздний ответ. Я не видел ничего конкретного в catalina.out (ничего, что могло бы указать более или менее очевидный pb, касающийся, скажем, проблемы разрешения) – Marvin

ответ

1

обеспечить синтаксис конфигурации работал вероятно, запустить скрипт под: "TOMCAT-дом" /bin/configtest.sh

+0

Спасибо за подсказку. Это не указывало на очевидную проблему, но, по крайней мере, я чему-то научился! – Marvin

1

Согласно документации для атрибута unpackWAR в Context из http://tomcat.apache.org/tomcat-7.0-doc/config/context.html:

Если false, атрибут unpackWARs владельца Host будет переопределен, и файл WAR не будет распакован. Если значение true, значение атрибута unpackWARs владельца Host будет определять, распадается ли WAR. Если не указано, значение по умолчанию - true.

Проверьте конфигурацию данного контекста - сделать дополнительные дополнительные уверены, что вы не искали unpackWARs, потому что атрибут контекста имя в единственном числе, unpackWAR.

Кроме того, context.xml могут быть упакованы в файле WAR, или быть в conf/localhost (или что-то настроить в качестве имени хоста в conf/)

В дополнение проверки прав доступа & собственности на папку WebApps (и темп), где вы ожидаете, что файл WAR распакуется. Я ожидаю, что это появится в журналах, но никто не знает (они могут быть защищены от записи ...). Общей проблемой, которую я вижу, является то, что кто-то «случайно» запускает tomcat как root, что приводит к изменению большого количества файлов & владельцев каталогов, что приводит к его разрушению для последующего использования с надлежащей непривилегированной учетной записью пользователя.

Пользователь tomcat на одном из компьютеров может иметь другой идентификатор пользователя, чем на другом, что может привести к неожиданному поведению.

+0

Олаф, спасибо за помощь. Хотя, мы много раз проверяли лишние (и нежелательные!) 'S' и не нашли ни одного. Кроме того, мы искали любой файл context.xml, а также в приложении «war», но ни один из них не удерживал этот параметр ... Таким образом, я все еще озадачен этим :) – Marvin