我读了很多关于Weblogic在部署期间改变web.xml的能力。
功能性,这很有效:在我的web.xml
我有一堆env条目:
<env-entry>
<env-entry-name>config/fileservice/outputCharacterSet</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
和plan.mxl
:
<variable>
<name>config/fileservice/outputCharacterSet</name>
<value>UTF-8</value>
<description>Specify the output character set to be used for dumping the JMS messages.
</variable>
并进一步向下
<variable-assignment>
<name>config/fileservice/outputCharacterSet</name>
<xpath>/web-app/env-entry/[env-entry-name="config/fileservice/outputCharacterSet"]/env-entry-value</xpath>
<operation>replace</operation>
</variable-assignment>
在部署过程中,它就像魅力一样。
但无论我做什么,在Weblogics管理控制台中都不会出现这样的条目: 在部署(WAR)内&gt;部署计划&gt;调整Paramter没有显示任何内容。
甚至
<value xsi:nil="true"></value>
导致应用程序刚刚部署 - 之后未设置该值。但是从文档[1]开始,我期望在部署期间出现某种用户对话,迫使部署者输入一些明智的价值。
[1] http://docs.oracle.com/cd/E15523_01/web.1111/e13702/export.htm
答案 0 :(得分:0)
在部署之前是否创建了如下目录
c:\my_app_root\plan\Plan.xml
c:\my_app_root\app\xyz.war
在部署期间,您应该指定c:\ my_app_root作为路径。据我了解,这是部署的推荐目录结构 http://docs.oracle.com/cd/E15523_01/web.1111/e13702/config.htm
对于您提到的空值问题,文档说它仅适用于外部资源,例如数据源的JDNI名称。您是否尝试在部署描述符和Plan.xml中使JNDI值为空?此外,WLS在部署期间不提供任何用户对话框以强制部署者输入正确的值。它只是部署失败了。这就是我所害怕的“力量”。当然,我会对这样的用户对话功能投赞成票。 : - )
答案 1 :(得分:0)
它仅用于“调整参数”而不是用于修改web.xml本身。 这只能通过plan.xml
实现