Как динамически передавать параметры в web.xml, используя weblogic 10.3.x? - PullRequest
6 голосов
/ 26 октября 2011

Я пытаюсь передать параметр JVM для переменной, настроенной в web.xml, в качестве параметра контекста, используя обозначение -D при запуске сервера weblogic. Я уже пробовал эту же конфигурацию, используя Tomcat 7, и она работает, как и ожидалось, но она не работает на сервере Weblogic 10.3.3. Любые подсказки?

web.xml

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
    <display-name>testeParWebXml</display-name>
    <context-param>
        <description>Habilita ou desabilita a configuração de debug do Facelets! Página de debug do Seam.</description>
        <param-name>facelets.DEVELOPMENT</param-name>
        <param-value>${habilitar.debug}</param-value>
    </context-param>
<welcome-file-list>

Затем при запуске jvm я передаю параметр, используя:

-Dhabilitar.debug=true

И я построил сервлет для проверки:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter pw = response.getWriter();
        String valorParametro = getServletContext().getInitParameter("facelets.DEVELOPMENT");
        pw.write("Param value from web.xml ==>> " + valorParametro);
}

Как я уже упоминал, используя Tomcat, если я изменяю значение на false или true в флаге -Dtimsar.debug, он правильно печатает значение в сервлете.

Param value from web.xml ==>>  true

В weblogic я получаю вывод вроде:

Param value from web.xml ==>>  ${habilitar.debug}

Как замечено, weblogic НЕ анализирует значение переменной, установленной в web.xml.

Можно ли сделать это правильно в weblogic 10.3.3?

Ответы [ 2 ]

3 голосов
/ 26 октября 2011

Похоже, что в разных контейнерах нет согласованного поведения.ИМХО не стоит так поступать.Я всегда использовал (и всегда видел людей, использующих) web.xml, содержащий значения по умолчанию (а не параметризованные значения) для вещей.Пожалуйста, ознакомьтесь с этими дополнительными ресурсами (включая некоторые не очень элегантные, но рабочие подходы к вашей проблеме):

0 голосов
/ 08 ноября 2011

Первая попытка: я считаю, что фильтрация важных файлов, таких как web.xml, не является хорошей практикой.Однако вы можете использовать ant или maven для этого.

===

Вторая попытка: ОК Если одинаковые пакеты обязательны, я быпредпочитаю менять метод doPost .Вместо того, чтобы передавать туда значение, его можно передать ключом и установить там с помощью метода System.getProperty .Также имеет смысл установка значения по умолчанию, такого как среда разработки.

...