configuration - 如何使用 weblogic 10.3.x 在 web.xml 中动态传递参数?

标签 configuration parameters weblogic web.xml

我试图在启动 weblogic 服务器时使用 -D 表示法将 web.xml 中配置的变量的 JVM 参数作为上下文参数传递。我已经使用 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

我构建了一个 Servlet 来测试:
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 时提到的,如果我将 -Dhabilitar.debug 标志中的值更改为 false 或 true,它会在 servlet 中正确打印该值。
Param value from web.xml ==>>  true

在 weblogic 中,我得到如下输出:
Param value from web.xml ==>>  ${habilitar.debug}

正如注意到的,weblogic 不解析 web.xml 中设置的变量的值。

是否可以在 weblogic 10.3.3 中使其正常工作?

最佳答案

看起来不同容器之间没有一致的行为。恕我直言,你不应该那样做。我一直使用(并且总是看到人们使用)包含默认值(而不是参数化值)的 web.xml 。
请参阅这些附加资源(包括一些不太优雅但有效的方法来解决您的问题):

  • Best practices for defining and initializing variables in web.xml and then accessing them from Java code
  • Referencing Environment Variables in web.xml
  • http://www.coderanch.com/t/79094/Websphere/environment-variable-referance-Web-xml
  • 关于configuration - 如何使用 weblogic 10.3.x 在 web.xml 中动态传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903439/

    相关文章:

    c++ - 什么标准调用实际上是宏

    java - 如何在运行时获取从 JSP 生成的 servlet 类的文件路径?

    java - 使用 Weblogic 配置数据源时出现 createSQLException 错误

    html - 哪种参数传递方式更安全 : URL, 隐藏字段或cookie?

    java - spring web development - 禁用静态内容的缓存

    configuration - 用于X11转发的SSH压缩

    configuration - 您希望如何安装 clojure 模块化贡献?

    swift - 创建结构体实例时,是否必须为 init() 方法中初始化的所有属性参数发送参数?

    java - 哪个 weblogic jar 文件包含 com.bea.logging.BaseLogRecord?

    configuration - 如何在 Enterprise Architect 中设置默认包和/或图表?