在域模式下,我可以使用属性文件作为模块,但问题是如果文件中有任何修改,那么我需要为域中的所有从属文件执行此操作。 我希望集中文件,以便在某一点上我可以改变,它将反映在所有奴隶身上。
我知道在domain.xml中我们可以配置全局级系统属性,但我有大约25个属性文件。
那么有没有办法集中文件?
myjar.jar
-->package
--> class
-->properties
-->xml files
myjar.jar是一个存档的jar文件 要获取xml文件
URL url = Thread.currentThread().getContextClassLoader().getResource("./properties");
File queryFolder = new File(url.getFile());
for (File fileName : queryFolder.listFiles()) // null pointer exception
{
if (fileName.getName().toUpperCase().endsWith("XML"))
{
saxParser.parse(fileName, this);
}
}
这不起作用。
试过这个
How do I list the files inside a JAR file?
面对下面链接中给出的同样问题
JBoss wildfly 8.x Provider "vfs" not installed when using java nio Paths
URL w_url = mmyClass.class.getProtectionDomain().getCodeSource().getLocation();
JarEntry w_ze = null;
LOGGER.info("Jar******************" + w_url.toString());
if (w_url.toString().endsWith(".jar"))
{
try (JarInputStream jar = new JarInputStream(w_url.openStream()))
{
while ((w_ze = jar.getNextJarEntry()) != null)
{
LOGGER.info("Name *******" + w_ze.getName());
}
}
catch(Exception e)
{
}
}
答案 0 :(得分:1)
在war文件中添加了properties文件夹,并使用war文件的servlet中的以下代码获取了展开的文件夹路径。
config.getServletContext().getRealPath("/");
这给出了文件夹的vfs路径。
并在
中配置相同的内容System.setProperty("REALPATH", config.getServletContext().getRealPath("/"));
并在jar文件中使用相同的内容。