IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[Primefaces Push] Injecter un bean managé dans une ressource PushEndpoint


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 60
    Par défaut [Primefaces Push] Injecter un bean managé dans une ressource PushEndpoint
    Bonjour,

    Je voudrais savoir si c'est possible d'injecter un bean managé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @Named [javax.inject.Named]
    @ApplicationScoped [javax.enterprise.context.ApplicationScoped]
    public AppManager implements Serializable {[...]}
    Dans une ressource PushEndpoint :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @PushEndpoint("/myPath") [org.primefaces.push.annotation.PushEndpoint]
    @Singleton [org.primefaces.push.annotation.Singleton]
    public class PushRessource {
    <div style="margin-left:40px">   //Avec</div><div style="margin-left:40px">   @Inject</div><div style="margin-left:40px">   private AppManager appManager;</div>
    <div style="margin-left:40px">   @OnClose</div><div style="margin-left:40px">   public void onClose(RemoteEndpoint r, EventBus eventBus) {</div><div style="margin-left:40px"><div style="margin-left:40px">       //appManager est toujours null</div></div><div style="margin-left:40px"><div style="margin-left:40px">      appManager.test();</div></div><div style="margin-left:40px">   }</div>}
    Car je n'arrive pas à le faire fonctionner

    pom.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <dependencies>
    <div style="margin-left:40px">   <dependency></div><div style="margin-left:40px"><div style="margin-left:40px">      <groupId>org.atmosphere</groupId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <artifactId>atmosphere-runtime</artifactId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <version>2.3.0-RC6</version></div></div><div style="margin-left:40px">   </dependency></div><div style="margin-left:40px">   <dependency></div><div style="margin-left:40px"><div style="margin-left:40px">      <groupId>org.primefaces</groupId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <artifactId>primefaces</artifactId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <version>5.2</version></div></div><div style="margin-left:40px">   </dependency></div><div style="margin-left:40px">   <dependency></div><div style="margin-left:40px"><div style="margin-left:40px">      <groupId>javax</groupId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <artifactId>javaee-web-api</artifactId></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <version>7.0</version></div></div><div style="margin-left:40px"><div style="margin-left:40px">      <scope>provided</scope></div></div><div style="margin-left:40px">   </dependency></div></dependencies>
    Merci d'avance

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,
    Je pense que cela ne marche pas car tu utilises pas les annotations nécéssaires et donc ton bean n'est pas géré par le serveur d'application.
    Ta classe PushRessource doit être aussi annoté avec @Named.
    De plus normalement avec JSF tu définies le scope de ton bean avec une annotation du package javax.enterprise.context comme par exemple RequestScoped !
    Ce qui permettra au serveur de géré le cycle de vie de ton bean en fonction de son utilité.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    bonjour,
    Je pense que cela ne marche pas car tu utilises pas les annotations nécéssaires et donc ton bean n'est pas géré par le serveur d'application.
    Ta classe PushRessource doit être aussi annoté avec @Named.
    De plus normalement avec JSF tu définies le scope de ton bean avec une annotation du package javax.faces.bean comme par exemple RequestScoped !
    Ce qui permettra au serveur de géré le cycle de vie de ton bean en fonction de son utilité.
    Mais non, on ne mixe pas des annotations CDI avec les annotations JSF... de plus, son code montre bien les annotations Named et ApplicationScoped.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Mais non, on ne mixe pas des annotations CDI avec les annotations JSF... de plus, son code montre bien les annotations Named et ApplicationScoped.
    Pour ce qui est du mixage, je suis confus... je suis effecivement allé un peu vite, et j'ai rectifié mon post pour y mettre le package approprié.

    Cela dit, il se trouve que PushRessource n'est quand même pas annoté avec Named et est annoté qu'avec des annotations primefaces... elle n'est donc pas géré par le serveur et l'injection de AppManager ne sera jamais effective !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ce qui est clair, c'est que ce n'est pas très bien documenté et qu'il y a pas mal de personnes qui ont un problème d'injection
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2008, 15h26
  2. Réponses: 1
    Dernier message: 26/09/2007, 17h16
  3. problème d'injection (?) d'un session bean EJB3 dans une servlet
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 11/03/2007, 01h26
  4. Réponses: 4
    Dernier message: 10/09/2006, 10h49
  5. Réponses: 6
    Dernier message: 31/08/2006, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo