我们正在将应用程序从JBoss 4升级到JBoss 6。
我们的应用程序有几部分以一种不寻常的方式传递给客户端:在我们的应用程序内部查找jar,然后将其从servlet发送到客户端,客户端从servlet中提取它们以运行某些支持功能。
在JBoss 4中,我们将使用类加载器查找这些jar,并找到一个jar://URL,该URL将用于读取jar并将其内容发送给客户端。
在JBoss 6中,当我们执行查找时,我们得到一个vfs:/URL。我知道这是从org.jboss.vfs包中获得的。不幸的是,当我在该URL上调用openStream()并从流中读取时,我立即得到一个EOF(read()返回-1)。
是什么赋予了?为什么我无法读取该URL引用的资源?
我尝试尝试通过JBoss VFS API访问基础VFS软件包以打开文件,但是大多数API似乎都是私有(private)的,并且我找不到从vfs:/URL转换为VFS的例程。 VirtualFile对象,因此无法到达任何地方。
我可以尝试在JBoss中的磁盘上找到文件,但是这种方法听起来很容易升级。
我们的旧方法是使用Java Web Start将jar分发给客户端,然后在Java Web Start的缓存中查找它们以提取它们。但这在Java的每个次要升级中都失败了,因为缓存的布局发生了变化。
最佳答案
问题JBVFS-147 Cannot read from vfs: protocol URL仍未解决,也许您想投票并观看此问题。
关于java - 为什么我不能打开JBoss vfs :/URL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4899371/