2010-09-05 24 views
0

J'ai géré le bean/backing bean et j'y injecte (avec @EJB) le bean session. Maintenant, dans le constructeur, je veux l'utiliser pour initialiser la propriété dans le bean backing avec la valeur de la base de données. Mais le bean session injecté est nul. Quelles sont les autres façons d'initialiser? Autant que je sache, je ne peux pas utiliser @PostConstruct parce que l'extraction de données de la base de données peut entraîner une exception et @PostConstruct l'interdit.Problème lors de l'initialisation de la propriété du bean backing dans le constructeur

Merci à l'avance

Répondre

1

Vous pouvez rethrow comme une exception non contrôlée dans @PostConstruct.

Semi-pseudo:

@PostConstruct 
public void init() { 
    try { 
     doSomething(); 
    } catch (CheckedException e) { 
     throw new UncheckedException(e); 
    } 
} 
+0

Est-ce la façon 'standard' pour initialiser? :) – l245c4l

+0

@ l245c4l: Si le constructeur n'est pas suffisant ("trop ​​tôt") en raison de dépendances managées, alors oui. @Pascal: Cela va. Là l'annotation est pour. – BalusC

+0

Merci encore, donc je devrais attraper (Exception e) et lancer RuntimeExcpetion (e)? – l245c4l