2016-08-26 7 views
0

Я использую плагин maven eclipse для причала.Можете ли вы установить параметры init в файле jetty-env.xml для контекста веб-приложения?

Можно ли установить следующий параметр init через файл jetty-env.xml, используя тег <set>?

<init-param> 
    <param-name>useFileMappedBuffer</param-name> 
    <param-value>false</param-value> 
</init-param> 

Я не хочу, чтобы создать свой собственный контекст веб-приложения (webdefault.xml)

ответ

1

Нашли решение. Вы можете использовать тег <Call> для вызова метода setInitParameter для WebAppContext для установки параметров инициализации. Для этого тега вы устанавливаете атрибут name методу, который вы вызываете, и первым аргументом является имя параметра, вторым аргументом является значение параметра.

<Call name="setInitParameter"> 
    <Arg>org.eclipse.jetty.servlet.Default.useFileMappedBuffer</Arg> 
    <Arg>false</Arg> 
</Call> 
+0

Креативное решение с использованием параметра init-param ServletContext, позволяющего использовать initServlet init. Тем не менее, пахнет ошибкой, поскольку эта технология зарезервирована для развертывания XML и злоупотребляет целью и роль 'jetty-env.xml' (исключительно для настройки среды JNDI). Не ожидайте, что это сработает в будущем. –

0

Нет, так как это конфигурация init-param для DefaultServlet, который определяется как defaultDescriptor в WebAppContext.

К моменту, когда jetty-env.xml был загружен и обрабатывается, существует экземпляр WebAppContext, а defaultDescriptor уже загружен и инициализирован.

Единственное место, где вы можете указать, что конкретно init-param находится в обычном defaultDescriptor, который вы указываете в своем XML-развертывании для вашего веб-приложения.

Примечание: jetty-env.xml существует для определения различных связанных с окружающей средой объектов JDNI, не предназначенных для чего-либо еще.

+0

Возможно использование тега , см. Мой ответ. – JCS