我使用jboss AS7作为服务器,并且我使用以下代码来获取包含特定资源文件的所有jar文件。
try {
urls = Thread.currentThread().getContextClassLoader().getResources("config.properties");
//Here gets all jar files url which contains config.properties file
} catch (IOException e) {
throw new AWGenericException(e);
}
但在JBOSS的情况下,所有url都以VFS(虚拟文件系统)格式出现。因此url字符串如下所示
vfs:/E:/Servers/JBOSS/standalone/deployments/isms.war/WEB-INF/lib/ariba.aribaweb.jar/META-INF/config.properties
实际上,我不需要vfs url,我需要以常规格式出现的url,如下所示。
jar:file:/E:/Servers/JBOSS/standalone/deployments/isms.war/WEB-INF/lib/ariba.aribaweb.jar!/META-INF/config.properties
是否可以在JBOSS AS7 中关闭此功能(vfs)
不可能,因为JBoss AS7的存储系统使用VFS。
然而,你可以在你的URL
对象上转到getPath()
,它只会返回你的路径,比如:
E:/Servers/JBOSS/standalone/deployments/isms.war/WEB-INF/lib/ariba.aribaweb.jar/META-INF/config.properties
理论上,如果需要匹配,可以将jar:file:
添加到起点,并将getPath()
中的.jar
替换为.jar!
。