我正在尝试在启动weblogic服务器时使用-D表示法将web.xml中配置的变量的JVM参数作为context-parameter传递。我已经使用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中正常工作?
答案 0 :(得分:3)
看起来不同容器之间没有一致的行为。恕我直言,你不应该这样做。我总是使用(并且一直看到人们使用)web.xml包含默认值(而不是参数化值)。 请查看这些额外的资源(包括一些不那么优雅但工作方法来解决您的问题):
答案 1 :(得分:0)