Vous ne devriez pas utiliser FileSystemResource
, vous devez utiliser ServletContextResource
:
new ServletContextResource(servletContext, "/myfile.xml");
En supposant, bien sûr, que le ServletContext est à votre disposition.
Si vous vraiment voulez utiliser FileSystemResource
, alors vous devez demander le conteneur dans lequel le répertoire est, et l'utiliser comme un chemin relatif, par exemple
String filePath = servletContext.getRealPath("/myfile.xml");
new FileSystemResource(filePath);
Il est plus facile de laisser Spring faire le travail pour vous. Dites que vous avez un haricot qui a besoin de ce Resource
. Vous pouvez injecter le chemin de ressource sous la forme d'une chaîne et laisser Printemps le convertir en ressource, par ex.
public class MyBean {
private Resource myResource;
public void setMyResource(Resource myResource) {
this.myResource = myResource;
}
}
et dans votre fichier haricots:
<bean id="myBean" class="MyBean">
<property name="myResource" value="/path/under/webapp/root/of/my/file.xml">
</bean>
Spring convertira le chemin de la ressource en ServletContextResource
et de transmettre cela à votre haricot.
Merci! Dans ma servlet j'ai HttpServletRequest et HttpServletResponse, donc je fais "request.getRealPath()" au lieu de servletContext.getRealPath(). – portoalet
m'a sauvé la vie !! – rpr