... voilà le quatuor gagnant!
Mon problème est le suivant :
j'utilise le composant autoComplete de primeFaces pour faire de l'auto-complétion sur un champ d'une page JSF. La méthode d'autocomplétion est implémenté dans un bean managé. Cette méthode vise à effectuer une recherche hibernate pour rapatrier une liste d'objets métier, via hibernate. Le hic, c'est que ma DAO n'arrive pas à récupérrer une session hibernate valide : je me tape à chaque fois une org.hibernate.SessionException.
Le filtre déclaré dans le web.xml est le traditionnel OpenEntityManagerInViewFilter, mais je me demande s'il ne faudrait pas en déclarer un autre spécifique à JSF... Mais je n'arrive pas à trouver ce filtre (les quelques essais que j'ai pu faire, notamment celui-ci, ne résolvent pas le problème).
Est-ce que vous avez déjà eu ce problème ? Et si oui, comment puis-je le résoudre ?
Merci.
pom.xml (extraits)
web.xml (extraits)
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
16
17
18 <!-- Hibernate / JPA --> <jpa-version>1.0.0.Final</jpa-version> <hibernate-entitymanager-version>3.5.1-Final</hibernate-entitymanager-version> <hibernate-version>3.5.1-Final</hibernate-version> <!-- Spring --> <spring-version>3.0.4.RELEASE</spring-version> <spring-security-facelets-taglib-version>0.5</spring-security-facelets-taglib-version> <spring-webflow-version>2.2.1.RELEASE</spring-webflow-version> <!-- JSF / Facelets --> <jsf-version>2.0.3</jsf-version> <facelet-version>1.1.14</facelet-version> <!-- JSF / Facelets --> <jsf-version>2.0.3</jsf-version> <facelet-version>1.1.14</facelet-version>
faces-config.xml
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <!-- Param for Primefaces --> <context-param> <param-name>com.sun.faces.allowTextChildren</param-name> <param-value>true</param-value> </context-param> <!-- OpenEntityManagerInViewFilter --> <filter> <filter-name>openEntityManagerInViewFilter</filter-name> <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> </filter> <!-- OpenEntityManagerInViewFilter --> <filter-mapping> <filter-name>openEntityManagerInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Just here so the JSF implementation can initialize, *not* used at runtime --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Just here so the JSF implementation can initialize --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.faces</url-pattern> <url-pattern>*.jsf</url-pattern> </servlet-mapping>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0"> <application> <message-bundle>LabelResources</message-bundle> <message-bundle>ErrorResources</message-bundle> <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver> </application> </faces-config>
Partager