Bonjour,
Je travaille sur un projet web utilisant Spring et hibernate.
La couche présentation utilise JSF. Le tout fonctionnent sous tomcat.
Toutes les couches sont en place et fonctionnent bien.
J'ai aujourd'hui besoin de récupérer les couches service et dao afin d'effectuer un traitement de type batch. Il s'agit donc d'une application non-web (pas de jsf, pas de tomcat), mais censée pouvoir réutiliser certains beans.
J'ai donc écris quelque chose qui ressemble à :
A partir de là, quand je récupère un service en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 String[] xs = new String[] {"WebContent/WEB-INF/applicationContext-resources.xml", "WebContent/WEB-INF/applicationContext-mail.xml", "WebContent/WEB-INF/applicationContext-hibernate.xml", "WebContent/WEB-INF/applicationContext-service.xml" }; ClassPathResource("WebContent/WEB-INF")); GenericApplicationContext ctx = new GenericApplicationContext(); XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(ctx); xmlReader.loadBeanDefinitions(new FileSystemResource(xs[0])); xmlReader.loadBeanDefinitions(new FileSystemResource(xs[1])); xmlReader.loadBeanDefinitions(new FileSystemResource(xs[2])); xmlReader.loadBeanDefinitions(new FileSystemResource(xs[3])); ctx.refresh();
Object service = ctx.getBean("userManager");
Au lieu d'obtenir un objet de type UserManager j'obtiens un objet de type $Proxy1.
Je précise quand dans l'application web, en faisant :
comme je l'obtiens dans l'application web en faisant WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()).getBean("userManager")),
j'obtiens bien un objet de type UserManager.
Comment résoudre mon problème ?
Peut être la classe GenericApplicationContext n'est elle pas adaptée à ce que je souhaite faire. Si vous avez des pistes ...
Merci d'avance et bonne journée.
Partager