<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - JSF</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur JSF et ses bibliothèques de composants associées (PrimeFaces, IceFaces, RichFaces...). Avant de poster -> FAQ JSF]]></description>
		<language>fr</language>
		<lastBuildDate>Mon, 01 Jun 2026 19:45:02 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - JSF</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Sur une articulation du projet : l’injection de dependence via CDI</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178834&amp;goto=newpost</link>
			<pubDate>Mon, 25 Aug 2025 21:21:42 GMT</pubDate>
			<description>Bonjour, 
Je developpe un...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
Je developpe un projet (Etudiants, cours dispensés) avec JSF et serveur Wildfly<br />
<br />
Préliminaire: une classe singleton pour retourner un object connection à une base de données.<br />
<br />
Par exemple, pour la gestion des entités ‘Course’, on a besoin d’une classe ‘CourseDAO’ pour extraire ou MAJ les informations d’un représentant (un cours). Cette classe est elle-même une dépendence du bean ‘AbonneControllerBean.java’ qui fait appel à la methode de celui-ci: coursedao.findAll() pour retrouver la liste de tous les cours.<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">@Named</span>
<span style="color: #339933;">@SessionScoped</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> AbonneControllerBean <span class="br0">&#123;</span>
&nbsp;
	<span style="color: #0000ff;">public</span> String groupName;
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> groupid;
	<span style="color: #0000ff;">public</span> Abonne session_abonne;
	<span style="color: #0000ff;">public</span> List&lt;Student&gt; students;  <span style="color: #808080;">// present here whereas the Abonne POJO class shall only contain a list of lastNames</span>
	<span style="color: #339933;">@Inject</span>
	<span style="color: #0000ff;">public</span> StudentDAO studentDAO;
&nbsp;
	<span style="color: #808080;">//private List&lt;String&gt; courseNames;</span>
	<span style="color: #0000ff;">private</span> List&lt;Course&gt; courses;
	<span style="color: #339933;">@Inject</span>
	<span style="color: #0000ff;">public</span> CourseDAO courseDAO;
&nbsp;
	<span style="color: #339933;">@PostConstruct</span>
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	   <span style="color: #0000ff;">this</span>.groupName = <span style="color: #FF0000;">&quot;science&quot;</span>;
	   <span style="color: #0000ff;">this</span>.groupid = <span style="color: #cc66cc;">1</span>;
	   IDatabase connectMySQLService = DatabaseMySQLConnect.getInstance<span class="br0">&#40;</span><span class="br0">&#41;</span>;
		<span style="color: #808080;">//	this.studentDAO = new StudentDAO(connectMySQLService);</span>
	   <span style="color: #0000ff;">this</span>.studentDAO.setConnectService<span class="br0">&#40;</span>connectMySQLService<span class="br0">&#41;</span>;
	   <span style="color: #0000ff;">this</span>.students = <span style="color: #0000ff;">this</span>.studentDAO.findAll<span class="br0">&#40;</span><span class="br0">&#41;</span>;
	   <span style="color: #0000ff;">this</span>.courseDAO.setConnectService<span class="br0">&#40;</span>connectMySQLService<span class="br0">&#41;</span>;
	   <span style="color: #0000ff;">this</span>.courses = <span style="color: #0000ff;">this</span>.courseDAO.findAll<span class="br0">&#40;</span><span class="br0">&#41;</span>;
	<span class="br0">&#125;</span>
&nbsp;
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>Ce que j’ai compris sur CDI en lisant un extrait de la doc <a rel="nofollow" href="https://jakarta.ee/learn/docs/jakartaee-tutorial/current/cdi/cdi-basic/cdi-basic.html" target="_blank">https://jakarta.ee/learn/docs/jakart...cdi-basic.html</a><br />
<br />
CDI 3.0 est inclus dans la plateforme jakarta ee dans la continuité des services (ex EJB) de cette plateforme. Plus précisement elle est utilisée pour deux applications:<br />
- Dependency Injection<br />
- Managed Bean des bean stateful géré par la plateforme (ex anciens backing bean de l’annotation @ManagedBean de JSF migré vers CDI bean de l’annotation @Named)<br />
cité:<br />
«In addition, CDI provides the following services:<br />
- Integration with the Expression Language (EL), which allow any component to be used directly within a Jakarta Faces or a Jakarta Server Pages page.<br />
[…]- stop»<br />
<br />
La question que je me pose maintenant, c’est que dans ma classe CourseDAO, je définis une dépendence à un objet singleton, connectService et avec Springframework cette fois. Cet objet va faire l’appel à l’ouverture d’une Connexion à la base paramétrée (MySQL ou une autre, il suffit alors de changer cet objet). Est ce que cette façon de faire est une hierarchie et non passible de conflit CDI vs Springframework (Je n’ai pas encore attaqué les tests pour l’instant)?<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">@Configuration</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> CourseDAO <span style="color: #0000ff;">implements</span> IEntityDAO&lt;Course&gt; <span class="br0">&#123;</span>
&nbsp;
	<span style="color: #0000ff;">private</span> IDatabase connectService; <span style="color: #808080;">// dependency injection</span>
	<span style="color: #0000ff;">private</span> Connection connect;
&nbsp;
	<span style="color: #339933;">@Autowired</span>
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> setConnectService<span class="br0">&#40;</span>IDatabase connectService<span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span style="color: #0000ff;">this</span>.connectService = connectService;
	<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">public</span> CourseDAO<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span style="color: #0000ff;">try</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">this</span>.connect = connectService.getConnection<span class="br0">&#40;</span><span class="br0">&#41;</span>;
		<span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span> <span class="br0">&#40;</span>Exception e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
			System.out.println<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;AbonneDAO error getConnection&quot;</span><span class="br0">&#41;</span>;
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
<span style="color: #808080;">//...</span>
<span class="br0">&#125;</span></pre></td></tr></table></code><hr />
</div>De l’autre côté, j’ai déjà fait des autres codes avec Spring pour créer des beans = classes de connexion dépendant d’un fichier properties.xml puis les injecter dans le DAO, ça marchait très bien.<br />
<br />
Je peux donner un peu plus de resultats sous 24h mais y a t-il déjà quelque chose qui frappe*?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f300/java/developpement-web-java/frameworks-web/jsf/">JSF</category>
			<dc:creator>tournesol59</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178834/java/developpement-web-java/frameworks-web/jsf/articulation-projet-l-injection-dependence-via-cdi/</guid>
		</item>
		<item>
			<title>Erreur avec Named au lieu de ManagedProperty</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2177658&amp;goto=newpost</link>
			<pubDate>Sat, 21 Jun 2025 22:19:05 GMT</pubDate>
			<description>Bonjour, 
 
Je crée un...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je crée un nouveau projet JSF.<br />
J'ai réussi à faire un build avec Maven d'une demo mais pas le test avec Wildfly intégré à Eclipse, mais le problème que je rencontre actuellement est le suivant:<br />
Lorsque je cherche à faire un projet s'inspirant de cette demo en créant un formulaire d'inscription pour étudiants: j'ai une version avec certains import javax.faces qui compile et une autre avec jakarta.* qui elle ne compile pas.<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td valign="top"><pre style="margin: 0">&lt;!DOCTYPE html&gt;
&lt;html xmlns=<span style="color: #FF0000;">&quot;http://www.w3.org/1999/xhtml&quot;</span> xml:lang=<span style="color: #FF0000;">&quot;en&quot;</span>
   xmlns:f=<span style="color: #FF0000;">&quot;http://xmlns.jcp.org/jsf/core&quot;</span>
   xmlns:h=<span style="color: #FF0000;">&quot;http://xmlns.jcp.org/jsf/html&quot;</span>&gt;
&lt;h:head&gt;
&lt;meta charset=<span style="color: #FF0000;">&quot;UTF-8&quot;</span>&gt;
&lt;title&gt;Insert title here&lt;/title&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
&lt;f:view&gt;
   &lt;h:form&gt;
     &lt;h:panelGrid columns=<span style="color: #FF0000;">&quot;2&quot;</span>&gt; 
      &lt;h:outputText value=<span style="color: #FF0000;">&quot;Entrer votre prenom&quot;</span> /&gt;
      &lt;h:panelGroup&gt;
      &lt;h:inputText id=<span style="color: #FF0000;">&quot;firstname&quot;</span> value=<span style="color: #FF0000;">&quot;#{studentControllerBean.firstName}&quot;</span> required=<span style="color: #FF0000;">&quot;true&quot;</span>&gt;
      &lt;/h:inputText&gt;      
      &lt;/h:panelGroup&gt;     
      &lt;h:outputText value=<span style="color: #FF0000;">&quot;Entrer votre nom de famille&quot;</span> /&gt;
      &lt;h:panelGroup&gt;
      &lt;h:inputText id=<span style="color: #FF0000;">&quot;lastname&quot;</span> value=<span style="color: #FF0000;">&quot;#{studentControllerBean.lastName}&quot;</span> required=<span style="color: #FF0000;">&quot;true&quot;</span>&gt;
      &lt;/h:inputText&gt;      
      &lt;/h:panelGroup&gt;
&nbsp;
      &lt;h:outputText value=<span style="color: #FF0000;">&quot;Selectionner un cursus (abonnement)&quot;</span> /&gt;
      &lt;h:panelGroup&gt;
      &lt;h:selectOneListbox id=<span style="color: #FF0000;">&quot;abonne&quot;</span> value=<span style="color: #FF0000;">&quot;#{studentControllerBean.abonne}&quot;</span>&gt;
        &lt;f:selectItems value=<span style="color: #FF0000;">&quot;#{studentControllerBean.abonneItems}&quot;</span>/&gt;
      &lt;/h:selectOneListbox&gt;
      &lt;/h:panelGroup&gt;
     &lt;/h:panelGrid&gt;
&nbsp;
     &lt;h:commandButton value=<span style="color: #FF0000;">&quot;Valider&quot;</span> action=<span style="color: #FF0000;">&quot;#{studentControllerBean.registeroutcome}&quot;</span>/&gt;
   &lt;/h:form&gt;
&lt;/f:view&gt;
&lt;/h:body&gt;
&lt;/html&gt;</pre></td></tr></table></code><hr />
</div>Le code simplifié de mon bean:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;">@ManagedBean</span>
<span style="color: #339933;">@RequestScoped</span>
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> StudentControllerBean <span class="br0">&#123;</span>
&nbsp;
	<span style="color: #0000ff;">public</span> String firstName;
	<span style="color: #0000ff;">public</span> String lastName;
	<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> abonne;
&nbsp;
	<span style="color: #0000ff;">public</span> Student registerStudent;
&nbsp;
	<span style="color: #339933;">@Inject</span>
	<span style="color: #0000ff;">public</span> StudentDAO studentDAO;
&nbsp;
	<span style="color: #0000ff;">public</span> List&lt;Student&gt; students;
&nbsp;
	<span style="color: #808080;">// en dur pour l'instant</span>
	<span style="color: #0000ff;">private</span> SelectItem<span class="br0">&#91;</span><span class="br0">&#93;</span> abonneItems = <span class="br0">&#123;</span>
			    <span style="color: #0000ff;">new</span> SelectItem<span class="br0">&#40;</span><span style="color: #cc66cc;">1</span>, <span style="color: #FF0000;">&quot;science&quot;</span><span class="br0">&#41;</span>,
			    <span style="color: #0000ff;">new</span> SelectItem<span class="br0">&#40;</span><span style="color: #cc66cc;">2</span>, <span style="color: #FF0000;">&quot;engineering&quot;</span><span class="br0">&#41;</span>,
			    <span style="color: #0000ff;">new</span> SelectItem<span class="br0">&#40;</span><span style="color: #cc66cc;">3</span>, <span style="color: #FF0000;">&quot;building&quot;</span><span class="br0">&#41;</span> <span class="br0">&#125;</span>;</pre></td></tr></table></code><hr />
</div>si je remplace les imports (en commentaire quand ça marchait, et decommenté la nouvelle version<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">import</span> javax.faces.bean.ManagedBean;
<span style="color: #808080;">///import jakarta.inject.Named; // prefer this on : jakarta CDI </span>
<span style="color: #808080;">//import javax.faces.bean.RequestScoped;</span>
<span style="color: #0000ff;">import</span> jakarta.enterprise.context.RequestScoped;</pre></td></tr></table></code><hr />
</div>ça ne compile plus. J'obtientdes 'cannot find symbol'.<br />
Que faire, car j'ai vu que la version qui marche est deprecated.<br />
<br />
Mon pom:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
  	&lt;dependency&gt;
  		&lt;groupId&gt;jakarta.platform&lt;/groupId&gt;
  		&lt;artifactId&gt;jakarta.jakartaee-api&lt;/artifactId&gt;
  		&lt;version&gt;<span style="color: #cc66cc;">8</span>.<span style="color: #cc66cc;">0</span>.<span style="color: #cc66cc;">0</span>&lt;/version&gt;
  		&lt;scope&gt;provided&lt;/scope&gt;
  	&lt;/dependency&gt;  	
&lt;!-- https:<span style="color: #808080;">//mvnrepository.com/artifact/org.glassfish/jakarta.faces --&gt;</span>
  	&lt;dependency&gt;
  		&lt;groupId&gt;org.glassfish&lt;/groupId&gt;
  		&lt;artifactId&gt;jakarta.faces&lt;/artifactId&gt;
  		&lt;version&gt;<span style="color: #cc66cc;">4</span>.<span style="color: #cc66cc;">0</span>.<span style="color: #cc66cc;">0</span>-M1&lt;/version&gt;
  		&lt;scope&gt;provided&lt;/scope&gt;
  	&lt;/dependency&gt;</pre></td></tr></table></code><hr />
</div>Question: est ce qu'il faut que j'utilise jakarta au lieu de javax seulement dans le pom et chercher une autre cause à mon problème de déploiement?<br />
(J'ai regardé des fils de discussion <a rel="nofollow" href="https://stackoverflow.com/questions/8081234/how-to-properly-install-and-configure-jsf-libraries-via-maven" target="_blank">https://stackoverflow.com/questions/...ries-via-maven</a>)</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f300/java/developpement-web-java/frameworks-web/jsf/">JSF</category>
			<dc:creator>tournesol59</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2177658/java/developpement-web-java/frameworks-web/jsf/erreur-named-lieu-managedproperty/</guid>
		</item>
	</channel>
</rss>
