Как добавить несколько элементов Context в conf/context.xml в tomcat6

Мой существующий файл conf/context.xml уже содержит элемент; WEB-INF/web.xml

Я хотел бы добавить еще один, чтобы разрешить локальному хосту доступ к расположению / manager / status в моем мониторинге, однако добавив новый элемент Context следующим образом;

конф / context.xml

----
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" privileged="true"
         docBase="/usr/share/tomcat6/webapps/manager">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                allow="127\.0\.0\.1"/>
</Context>
----

ломает xml, так как я предполагаю, что файлу нужен один корневой элемент для lint/parse ok SEVERE: Parse Fatal Error в строке 6, столбец 2: разметка в документе после корневого элемента должна быть правильно сформирована.

org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)

2 ответа

Решение

Детали в файле context.xml используются для всех контекстов. Если вы хотите указать конкретные детали для одного конкретного контекста, создайте файл с тегом контекста в $CATALINA_BASE/conf/[enginename]/[hostname]/

например. conf / catalina / localhost / manager.xml, который содержит:

<Context privileged="true"
         docBase="/usr/share/tomcat6/webapps/manager">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                allow="127\.0\.0\.1"/>
</Context>

обратите внимание, что нам не нужен путь, так как файл называется manager.xml

прочитайте это для более подробной информации: http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

Для Tomcat 5, в отличие от Tomcat 4.x, НЕ рекомендуется размещать элементы непосредственно в файле server.xml. Это связано с тем, что изменение конфигурации контекста делает его более инвазивным, поскольку основной файл conf/server.xml не может быть перезагружен без перезапуска Tomcat.

Элементы контекста могут быть явно определены:

В файле $CATALINA_HOME/conf/context.xml: информация об элементе Context будет загружена всеми веб-приложениями. В файле $CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default: информация об элементе Context будет загружена всеми веб-приложениями этого хоста. В отдельных файлах (с расширением ".xml") в каталоге $ CATALINA_HOME / conf / [enginename] / [hostname] /. Имя файла (без расширения.xml) будет использоваться как контекстный путь. Многоуровневые контекстные пути могут быть определены с использованием #, например, foo#bar.xml для контекстного пути / foo / bar. Веб-приложение по умолчанию может быть определено с помощью файла с именем ROOT.xml. Только если файл контекста не существует для приложения в $CATALINA_HOME/conf/[enginename]/[hostname]/; в отдельном файле в /META-INF/context.xml внутри файлов приложения. Если веб-приложение упаковано как WAR, то /META-INF/context.xml будет скопировано в $ CATALINA_HOME / conf / [enginename] / [hostname] / и переименовано в соответствии с контекстным путем приложения. Как только этот файл существует, он не будет заменен, если новая WAR с более новым /META-INF/context.xml будет помещена в appBase хоста. внутри элемента Host в основном файле conf/server.xml

За исключением server.xml, файлы, которые определяют элементы Context, могут определять только один элемент Context.

Другие вопросы по тегам