我正在尝试使用weblogic部署计划将init-param值添加到供应商提供的.war文件的web.xml中。
虽然我意识到我可以打开.war文件并且只是编辑内部文件,但我更愿意使用部署计划来完成此操作,因为我需要将.war文件部署到具有不同值的多个服务器有问题的init-param。
我已经找到了许多关于如何在线进行此操作的示例,但我的努力受到了影响。我想如果我能看到部署计划对我部署的war文件的影响,我就能快速弄清楚我做错了什么。
在应用部署计划后,我有办法查看weblogic(10.3.3)应用程序的运行时部署描述符吗?
答案 0 :(得分:3)
我花了一些时间对此进行调查,虽然WL10在一个临时目录中解压缩WAR,但它不会修改该位置的部署计划中列出的文件。我也尝试使用getResource / getResourceAsStream来读取整个web.xml,并发现它也是原始的,未经修改的文件。
我从未弄清楚WL如何应用这些更改,以便它们被ServletContext拾取而不会在其他任何地方看到它们。我的猜测是,它正在使用一些技巧来覆盖这些文件的加载并动态应用更改。
在与它斗争了一段时间之后,我最终确定了以下内容,以便在启动时列出init参数的值:
if (log.isTraceEnabled()) {
final Enumeration<String> names = context.getInitParameterNames();
while (names.hasMoreElements()) {
final String key = names.nextElement();
final String value = context.getInitParameter(key);
log.trace("Init Parameter '{}' = '{}'", key, value);
}
}
(使用slf4j进行日志记录)
当然,如果部署计划出现问题并且没有设置值,它会有所帮助,但这是我能想到的最好的。
答案 1 :(得分:1)
在12.2.1中有一个DebugDeploymentPlan服务器调试设置,如果启用,服务器会记录类似
的内容 <After applying the overrides from the deployment plan, the descriptor "META-INF/ejb-jar.xml" is: