如何在部署到Elastic Beanstalk的Spring启动项目中查找资源文件?
我的Spring启动项目在src/main/resources文件夹中包含一个XML文件,这是此类文件的公共位置 在本地和Pivotal CloudFoundary上运行时,我能够找到文件并将其读入,但在Beanstalk上,该过程会生成一个空文件 查找和读取文件的代码:如何在部署到Elastic Beanstalk的Spring启动项目中查找资源文件?,spring,amazon-web-services,spring-boot,amazon-ec2,amazon-elastic-beanstalk,Spring,Amazon Web Services,Spring Boot,Amazon Ec2,Amazon Elastic Beanstalk,我的Spring启动项目在src/main/resources文件夹中包含一个XML文件,这是此类文件的公共位置 在本地和Pivotal CloudFoundary上运行时,我能够找到文件并将其读入,但在Beanstalk上,该过程会生成一个空文件 查找和读取文件的代码: URL url = getClass().getResource("/myFile.xml"); LOG.info("File location: " + url.toString()); 生成的日志条目: File loc
URL url = getClass().getResource("/myFile.xml");
LOG.info("File location: " + url.toString());
生成的日志条目:
File location: jar:file:/var/app/current/application.jar!/WEB-INF/classes!/myFile.xml
当我SSH到EC2实例中时,我可以在指定的目录中找到jar
我是否需要配置Maven以将此文件移动到某个位置
更新
后来我意识到,我需要将这个文件当作InputStream中的文件,因为它打包在jar中
我现在使用以下代码,导致以下错误:
FileUtils.copyInputStreamToFile(new ClassPathResource("myFile.xml").getInputStream(), myFile);
java.lang.NullPointerException: null
at org.apache.commons.io.FileUtils.openOutputStream(FileUtils.java:345) ~[commons-io-2.5.jar:2.5]
及
谢谢 您的pom.xml看起来怎么样?可能有一个资源过滤器处于活动状态? 在spring应用程序中,可以使用
File File=ResourceUtils.getFile(“classpath:myFile.xml”)
读取资源文件
您可以使用ResourceUtils
检查结果吗
此处是api文档的链接:
FileUtils.copyInputStreamToFile(new ClassPathResource("classpath:myFile.xml").getInputStream(), myFile);
java.io.FileNotFoundException: class path resource [classpath:myFile.xml] cannot be opened because it does not exist