JBoss AS 7中的战争部署

3
我发现当我在JBoss AS 7的standalone/deployments中部署war文件时,它会在tmp/vfs/temp*中被解压。现在我想将这个路径(war被解压的位置)从/tmp/vfs配置到我选择的特定文件夹,并且还想给这个war的解压缩文件夹取一个我定制的名称。我搜索了很多但是找不到答案。
请告诉我如何修改以实现我的目标。

是的,没错。感谢您的输入。但是我想要的确切是配置war文件被解压缩的路径,而不是tmp/vfs。 - Abhi D
2个回答

1
部署已解压到虚拟文件系统(VFS),由JBoss VFS处理。
也许它会对某个值做出反应。 请查看此源代码:https://github.com/jbossas/jboss-vfs/blob/922c3db1fb823a585dbb24477f0e03585b2558d3/src/main/java/org/jboss/vfs/TempFileProvider.java
public final class TempFileProvider implements Closeable {

private static final Logger log = Logger.getLogger(TempFileProvider.class);
private static final String JBOSS_TMP_DIR_PROPERTY = "jboss.server.temp.dir";
private static final String JVM_TMP_DIR_PROPERTY = "java.io.tmpdir";
private static final File TMP_ROOT;
private static final int RETRIES = 10;
private final AtomicBoolean open = new AtomicBoolean(true);

static {
    String configTmpDir = System.getProperty(JBOSS_TMP_DIR_PROPERTY);
    if (configTmpDir == null)
        configTmpDir = System.getProperty(JVM_TMP_DIR_PROPERTY);
    try {
        TMP_ROOT = new File(configTmpDir, "vfs");
        TMP_ROOT.mkdirs();
    }
    catch (Exception e) {
        throw new RuntimeException("Can't set up temp file provider", e);
    }
}

此外,在AS 5中,这是使用描述符配置VFS根的方法:
在jboss-classloading.xml中配置VFS类加载器
虽然是针对JBoss AS 5的,但从理论上讲也可能适用。

Java 无法创建文件,原因是虚拟文件系统(vfs)。例如:"vfs:/E:/JBOSS_DEPLOYMENT/GD.war/WEB-INF/classes/../../logs/Server.log"。 - Gaurav

0
如果你需要控制应用程序的目录名称,你可以将其作为已解压的目录放置在部署目录中。
只需确保创建标记文件.dodeploy或更改部署扫描器配置即可。
auto-deploy-exploded="true"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接