嘿,大家都关注与上下文相关的文件加载,例如应用程序上下文、web.xml、配置和属性文件。
下面是如何加载存储在WEB-INF
下的任何类型的Java文件,但其存储在另一个结构中,例如子文件夹reportFile
中的文件或子文件夹report01
--
完整路径为/WEB-INF/reportFile/report01/report.xml
,我已经尝试了许多可能性来加载和读取这个xml文件......上述所有方法都没有奏效,但是,这是未来使用的技巧......
在Action或service类中,您知道接口实现类,而没有导入包,这是好的部分。
声明您的文件对象。
File myClass = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getFile());
System.out.println("Finding calss path first then remove classes from the path " + myClass.getCanonicalPath().replaceFirst("classes", "")+"reportFIle/report01/reports.xml")
2.将上面的路径中的classes
删除并添加您的具体路径以加载路径
File f = new File(myClass.getCanonicalPath().replaceFirst("classes", "")+"reportFile/report01/reports.xml")
然后
你甚至可以使用XML解析器对其进行解析或执行任何操作
document = docBuilder.parse(new File(myClass.getCanonicalPath().replaceFirst("classes", "")+"reportFile/report01/reports.xml"));
干杯!!
WEB-INF
文件夹中...而不是放在src/main/resources
文件夹中并从那里访问呢? - Mr T.getResourceAsStream
应该可以工作。 - SJuan76WEB-INF/classes
文件夹不应该包含任何配置文件。 - Newbie