Chargement fichier avec FileSystemResource
Bonjour,
je travaille actuellement sur un projet intégration. Mon traitement principal produit un report html. Le corps de ce report est généré par spring batch par contre le header et le footer sont deux fichiers que j'injecte dans mon résultat final.
J'injecte ces deux fichiers au niveau de spring comme suit:
Code:
1 2 3 4
|
<bean id="reportHeaderResource" class="org.springframework.core.io.FileSystemResource">
<constructor-arg type="java.lang.String" value="src/main/resources/spring/report/htmlReportHeader.txt" />
</bean> |
Puis je les exploite dans un listner qui les utilises :
Code:
1 2 3 4 5
| <bean id="headerFooterFileJobListener" class="integration.business.plan.report.HeaderFooterJobListener">
<property name="resource" ref="reportResource" />
<property name="resourceHeader" ref="reportHeaderResource" />
<property name="resourceFooter" ref="reportFooterResource" />
</bean> |
Mon HeaderFooterJobListener utilise les deux fichiers pour les ajouter comme header et footer, en somme ct une simple recopie.
Quand je lance le report en local sa marche correctement. Par contre quand je le lance sur mon serveur il me génère l'exception suivante :
Code:
[java] java.io.FileNotFoundException: Source 'src/main/resources/spring/report/htmlReportHeader.txt' does not exist
J'ai déjà essayé d'utiliser ClassLoader et Class.getResource sans succès, je pense que je m'y suis mal prit.
Est ce que quelqu'un pourrais m'aider svp.
Merci d'avance.
Solution de contournement
N'ayant pas réussi à charger mes fichiers à partir du JAR j'ai décidé d'externaliser ces ressources et'injecter leur path grâce à mes fichiers de config lié à l'environnement.
Je convient que cette solution n'est pas très propre et surtout assez contraignante mais n'ayant pas trouvé une autre solution j'ai pas eu le choix.
Si quelqu'un trouve un jour la solution qu'il n'hésite pas à me contacter.
Cordialement,