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

Configuration 如何使用weblogic 10.3.x在web.xml中动态传递参数?,configuration,parameters,weblogic,web.xml,Configuration,Parameters,Weblogic,Web.xml,我试图在启动weblogic server时,使用a-D符号将web.xml中配置的变量的JVM参数作为上下文参数传递。我已经使用Tomcat7尝试了相同的配置,它可以正常工作,但在WebLogicServer10.3.3中不起作用。有什么线索吗 web.xml <?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=

我试图在启动weblogic server时,使用a-D符号将web.xml中配置的变量的JVM参数作为上下文参数传递。我已经使用Tomcat7尝试了相同的配置,它可以正常工作,但在WebLogicServer10.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>
我构建了一个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);
}
正如我提到的,如果我在-Dhabilitar.debug标志中将值更改为false或true,则使用Tomcat会在servlet中正确打印该值

Param value from web.xml ==>>  true
在weblogic中,我得到如下输出:

Param value from web.xml ==>>  ${habilitar.debug}
正如所注意到的,weblogic不解析web.xml中变量集的值


是否有可能在weblogic 10.3.3中正常工作?

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

第一次尝试: 我认为过滤web.xml等关键文件不是一种好的做法。但是,您可以使用或来执行此操作

===

第二次尝试:
好的,如果必须使用相同的软件包,我希望更改doPost方法。不需要将值传递给那里,而是可以通过System.getProperty方法传递键并在那里进行设置。此外,设置默认值(如开发环境)也是有意义的

嗨,不幸的是,这不是我工作环境的一个选择。我已经知道了这种方法,但这些方法都不能满足我们的要求,即在不修改包的情况下启用和禁用seam调试页面。容器之间的不一致性是导致更多问题的原因,因为PPE坚持使用它工作的容器(在本例中为tomcat),并且希望在weblogic for production environment中使用相同的功能。是的,我也已经成为容器不一致性的受害者。:)祝你解决问题时好运。嗨,首先,谢谢你的回复。您说这不是一个好的实践是正确的,但在本例中,这是一个要求,因为使用ant或maven实际上将涉及为开发和生产环境生成多个包,在这种特定情况下,这不是一个可接受的选项。我也在Oracle论坛上讨论过这一点,最终的答案是,这不是一个规格说明请求,weblogic不支持这种方法。所以我假设这个问题没有正确的答案。你好,谢谢你的帮助。不幸的是,我的问题似乎没有一个直接的解决办法。它使用不同的方法解决了我在这个具体案例中不可选择的问题。
Param value from web.xml ==>>  ${habilitar.debug}