我想访问我的网络应用程序资源文件夹中的文件(独立于此是被剥离的WAR)。我已经通过Spring使用servletContext来获取getResource和FileSystem上下文。
最后,我选择了Spring ResourceLoader,因为在我的情况下,它似乎是最合适的方法。
我不喜欢使用@PropertySources注释并访问* .properties文件的特定属性。
已更新 我使用Webspehere Liberty Profile部署了我的应用程序。
@Component
public class FileCreator {
@Autowired
private ResourceLoader resourceLoader;
public String getRealPath(String location) {
String realPath = null;
try {
Resource resource = resourceLoader.getResource(location);
String resourceDesc = resource.getDescription();
realPath = resource.getURI().getPath();
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
return realPath;
}
}
我的Gradle应用程序有常见的maven布局。这意味着myApp.properties文件位于/ WEB-INF / classes文件夹
String scheduledServicesRealPath1 = fileCreator.getRealPath("classpath:myApp.properties");
我想获得此文件的绝对路径,但我只是为空。
是否存在可以独立于应用服务器访问资源的任何方法,在服务器上呈现应用程序的方式(是否已被浏览)以及独立于文件系统?