Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何用weblogic JNDI替换web.xml条目?_Java_Weblogic_Jndi_Web.xml - Fatal编程技术网

Java 如何用weblogic JNDI替换web.xml条目?

Java 如何用weblogic JNDI替换web.xml条目?,java,weblogic,jndi,web.xml,Java,Weblogic,Jndi,Web.xml,我需要将web.xml条目替换为无需重新部署即可更新的内容。起初,我想创建一个数据库表,但后来有人建议使用WebLogicJNDI。问题是我不知道怎么做,甚至不知道这是否可能。我试图在互联网上找到答案,但迄今为止进展不大。你能帮我解决这个问题吗?提前谢谢 注意:这是我第一次在这里提问,所以请耐心等待。答案是使用部署计划,这是完成这些事情的标准weblogic方法。这在这里有很好的描述: 然而,让我们假设您需要设置其他东西,一个环境变量。如果我们首先将变量添加到web.xml: <env-

我需要将web.xml条目替换为无需重新部署即可更新的内容。起初,我想创建一个数据库表,但后来有人建议使用WebLogicJNDI。问题是我不知道怎么做,甚至不知道这是否可能。我试图在互联网上找到答案,但迄今为止进展不大。你能帮我解决这个问题吗?提前谢谢


注意:这是我第一次在这里提问,所以请耐心等待。

答案是使用部署计划,这是完成这些事情的标准weblogic方法。这在这里有很好的描述:

然而,让我们假设您需要设置其他东西,一个环境变量。如果我们首先将变量添加到web.xml:

<env-entry>
    <env-entry-name>directoryPath</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>/data/uploads</env-entry-value>
</env-entry>

目录路径
java.lang.String
/数据/上传
这定义了一条路径,当然,不同的环境可能会有所不同

我们可以通过InitialContext或spring-JEE来引用:

<jee:jndi-lookup id="directoryPath" jndi-name="directoryPath" resource-ref="true" default-value="/data/uploads"/>

那么这个plan.xml是什么呢?首先,您需要生成一个默认值,您可以从上面的链接中选择该值,但是您可以通过选中此链接生成默认值:

然后我们需要替换我们需要的值,因为我们使用web.xml,我们需要插入web.xml位:

<module-descriptor external="false">
  <root-element>web-app</root-element>
  <uri>WEB-INF/web.xml</uri>
  <variable-assignment>
    <name>directoryPath</name>
    <xpath>/web-app/env-entry/env-entry-value</xpath>
  </variable-assignment>
</module-descriptor>

网络应用
WEB-INF/WEB.xml
目录路径
/web应用程序/环境条目/环境条目值
变量应在plan.xml的变量部分中定义

<variable>
  <name>directoryPath</name>
  <value>/data/secrets</value>
</variable>
<variable>

目录路径
/数据/机密
最后在控制台中更新应用程序(默认情况下,可以通过-plan选项上载计划)并指定计划。 在控制台中,选择部署,选择更新,然后从文件系统中选择计划。 应用程序是您当前的部署,可以随时更新plan.xml。是的,应用程序确实会重新启动,但这可能是一个计划中的轻度缺货,而不是全面的重新部署。
将使用新的目录路径。这不是我授予您的最简单的JNDI设置接口,但它确实有效。

为什么不使用ApplicationContext属性?但一旦重新启动应用程序,它们就会丢失。我需要一些持久性的东西。您有没有找到这个问题的答案?