如何将某些配置从Tomcat应用程序服务器的context.xml移到Wildfly?我真的需要来自Environment元素的数据。

context.xml包含以下内容:

<Context>

    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>


    <Environment name="some.very.important.config.path" value="C:\path\to\the\config\folder"

         type="java.lang.String" />


</Context>


我该如何在Wildfly应用程序服务器中做到这一点?

更新:

我现在必须使用JNDI,因为它是由其他人编写的应用程序。

到达可注入配置路径的代码如下所示。

        env = (Context) new InitialContext().lookup("java:comp/env");
        configPath = (String) env.lookup("some.very.important.config.path");

最佳答案

<WatchedResource>WEB-INF/web.xml</WatchedResource>
WildFly默认情况下会监视此文件中的更改
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
与WildFly不相关。 WEB-INF/jboss-web.xml文件用于类似目的,并且默认情况下也会被监视
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
与WildFly不相关
<Environment name="some.very.important.config.path" value="C:\path\to\the\config\folder" type="java.lang.String" />
编写一个名为(例如)configure-wildfly.cli的文本文件,其内容如下

# Execute offline
embed-server --server-config=standalone.xml

# Add system properties
/system-property=some.very.important.config.path:add(value=C:\path\to\the\config\folder)
/system-property=some.other.important.config.value:add(value=foobar)

# Bind an entry into the naming service
/subsystem=naming/binding=java\:global\/config\/important\/path:add(binding-type=simple, type=java.lang.String, value="C:\path\to\the\config\folder")

stop-embedded-server


然后运行:

${WILDFLY_HOME}/bin/jboss-cli.sh --file=configure-wildfly.cli


这样编写脚本可以轻松地从基础设置中重建服务器。您可以根据需要控制此文件。


访问系统属性:

 String configPath = System.getProperty("some.very.important.config.path");


在JNDI中查找值:

 Context ctx = new InitialContext();
 String configPath = (String)ctx.lookup("java:global/config/important/path");


或注入

 @Resource(lookup="java:global/config/important/path")
 private String configPath;

关于tomcat - 迁移设置:在context.xml中从Tomcat迁移到Wildfly 14.0.1 Final,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53546261/

10-14 10:41