Вы не должны использовать 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;
}
}
и в вашем файле beans:
<bean id="myBean" class="MyBean">
<property name="myResource" value="/path/under/webapp/root/of/my/file.xml">
</bean>
Spring преобразует путь к ресурсу в ServletContextResource и передаст его вашему bean-компоненту.
person
skaffman
schedule
04.03.2010