jboss 指向环境变量的缓存位置

jboss cache location pointing to env var

我的配置 xml 文件中有以下代码:

<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="urn:jboss:jbosscache-core:config:3.2">
    <locking isolationLevel="READ_COMMITTED" nodeLockingScheme="mvcc"
        useLockStriping="false" concurrencyLevel="1500"
        lockParentForChildInsertRemove="false" lockAcquisitionTimeout="10000"
        writeSkewCheck="true" />
    <!-- 0 = no eviction -->
    <eviction wakeUpInterval="500" />

    <loaders passivation="false" shared="false">
        <preload>
            <node fqn="/" />
        </preload>
        <loader class="org.jboss.cache.loader.FileCacheLoader" async="false"
            fetchPersistentState="true">
            <properties>
                location=/${env.VG_HOME}/cacheloader
            </properties>
        </loader>
    </loaders>

</jbosscache>

其中 VG_HOME 是指向本地文件夹的环境变量。

我已经使用 Jetty 服务器在 Linux 和 Windows 上测试了这个设置,它按预期工作。

在 tomcat 7 下,我用 set "VG_HOME=C:\config" 创建了 setenv.sh/bat。但是,当启动应用程序时,会在根目录下创建 cacheloader 文件夹(均为 windows/linux),名称如下 ${env.VG_HOME}。我怀疑 xml 中的位置 属性 没有看到 setenv.sh/bat 文件中设置的环境。

关于修复的任何想法,这意味着应用程序在使用 Tomcat 时会在正确的位置创建文件夹。

谢谢!

在深入了解@Maraboc 的回答后,我找到了修复它的正确位置。 转到您的 setenv 文件并添加以下内容:

set CATALINA_OPTS="-Denv.VG_HOME=%VG_HOME%"

如果您使用的是 TC6,它将不起作用,您需要将其添加到备注下方的 catalina.bat 文件中。