Tag: vfs

Apache Commonfs VFS避免增加临时目录

我有VFS的问题。 我开发了一个Web应用程序,用于将部署包(zip文件)的URL粘贴到textarea中。 您可以查看部署脚本,最后部署应用程序。 它运行在小型机器上的tomcat上。 部署包大约为5-100 MB。 我现在的问题是,临时目录随着时间​​的推移而增长。 VFS似乎没有从temp目录中删除文件。 我为tomcat写了一个启动脚本,它清理了vfs temp dir。 但这根本不是很好。 有没有办法在不关闭FileSystemManager情况下通过VFS删除它们? 似乎临时目录是缓存,但是当文件发生更改时,它不会再从内部网加载它。 我曾经设定过 ((DefaultFileSystemManager) VFS.getManager()).setFilesCache(new NullFilesCache()); ((DefaultFileSystemManager) VFS.getManager()).setCacheStrategy(CacheStrategy.ON_CALL); 但似乎VFS并不将临时目录视为缓存。 我是否解决了错误的问题?

为什么我不能打开JBoss vfs:/ URL?

我们正在将我们的应用程序从JBoss 4升级到JBoss 6。 我们的应用程序的几个部分以一种不寻常的方式传递给客户端:在应用程序内部查找jar并从servlet发送到客户端,客户端在其中提取它们以运行某些支持function。 在JBoss 4中,我们将使用类加载器查看这些jar子,并找到一个jar:// URL,用于读取jar并将其内容发送到客户端。 在JBoss 6中,当我们执行查找时,我们得到一个vfs:/ URL。 我知道这是来自org.jboss.vfs包。 不幸的是,当我在这个URL上调用openStream()并从流中读取时,我立即得到一个EOF(read()返回-1)。 是什么赋予了? 为什么我不能读取此URL引用的资源? 我试过通过JBoss VFS API尝试访问底层VFS包来打开文件,但是大多数API似乎是私有的,我找不到从vfs:/ URL转换为VFS的例程VirtualFile对象,所以我无法到达任何地方。 我可以尝试在JBoss中找到磁盘上的文件,但这种方法在升级时听起来非常容易出错。 我们的旧方法是使用Java Web Start将jar分发到客户端,然后在Java Web Start的缓存中查找它们以提取它们。 但是,由于缓存的布局发生了变化,因此Java的每次小升级都会破坏。