Puis-je utiliser l'injection de constructeur CDI pour les EJB?

Je veux faire quelque chose comme ceci:

@Stateless
public class GreeterEjb {


    private final Greeter greeter;


    @Inject
    public GreeterEjb(Greeter greeter) {
        this.greeter = greeter;
    }


    public String greet() {
        return greeter.greet();
    }
}

Je l'ai essayé avec Glassfish 3.1.1 et JBoss 7.0.2 avec des résultats mitigés. Dans certaines circonstances, il travaille, dans d'autres circonstances, il n'est pas.
Voir ce fil dans la Glassfisch forum si vous êtes intéressé par les détails.

La EJB 3.1 specsection 4.9.2 Classes de Haricots dit:

La classe doit avoir un constructeur public qui ne prend pas de paramètres.

Qui sonne comme constructeur d'injection n'est pas autorisé pour les Ejb.

MAIS la CDI spec dit au début de la section 3 de cette Session, les Haricots sont pris en charge par le CDI. La Section 3.2, puis s'adresse à la longueur de la CDI et les Ejb, mais ne mentionne jamais rien à propos de constructeur d'injection ne fonctionne pas. Ce qui me fait penser qu'il devrait être autorisé.

Oui, les spécifications permettent CDI constructeur d'injection pour les Ejb ou pas?

source d'informationauteur Arend v. Reinersdorff