Вы не должны использовать FileSystemResource
, вы должны использовать ServletContextResource
:
new ServletContextResource(servletContext, "/myfile.xml");
Предполагая, конечно, что вам доступен servletContext.
Если вы действительно хотите использовать FileSystemResource
, вам нужно спросить контейнер, где находится каталог, и использовать его в качестве относительного пути, например,
String filePath = servletContext.getRealPath("/myfile.xml");
new FileSystemResource(filePath);
Тем не менее проще позволить Spring сделать всю работу за вас. Скажем, у вас есть боб, который нуждается в этом Resource
. Вы можете добавить путь к ресурсу в виде строки и позволить Spring преобразовать его в ресурс, например
public class MyBean {
private Resource myResource;
public void setMyResource(Resource myResource) {
this.myResource = myResource;
}
}
и в вашем бобовом файле:
<bean id="myBean" class="MyBean">
<property name="myResource" value="/path/under/webapp/root/of/my/file.xml">
</bean>
Spring преобразует путь ресурса в ServletContextResource
и передает его вашему бобу.