Aucun contexte actif pour le type de portée javax.enterprise.context.RequestScoped lors de l'appel d'un bean à partir d'un thread
Lors de l'utilisation de la Soudure-SE 2.1.2.Au Final d'obtenir un haricot et de l'appeler à partir d'un thread, je rencontre l'exception suivante:
Exception in thread "main" org.jboss.de soudure.contexte.ContextNotActiveException à SOUDER:-001303: Non active les contextes, à la portée de type javax.de l'entreprise.contexte.RequestScoped
Mon haricot est annotée avec @RequestScooped. Si je annoter @ApplicationScoped puis il fonctionne très bien, mais j'ai besoin de garder @RequestScooped.
Ici est un reproducteur de :
public static void main(String[] args) throws Exception {
Weld weld = new Weld();
WeldContainer container = weld.initialize();
final MyPojo pojo = container.instance().select(MyPojo.class).get();
Thread t = new Thread() {
public void run() {
System.out.println(pojo.ping()); //This call fails
}
};
t.start();
t.join();
System.out.println(pojo.ping()); //This call succeed
weld.shutdown();
}
@RequestScoped
public class MyPojo {
public String ping() {
return "pong";
}
}
Avez-vous rencontré ce problème? Une idée pour faire ce travail s'il vous plaît?
source d'informationauteur Nader
Vous devez vous connecter pour publier un commentaire.
Dans ce cas, la Soudure est à l'aide non liée RequestContext qui est associé à un thread (RequestContext). Vous devez initialiser manuellement de nouveaux RequestContext dans un sujet que Vous êtes en train de créer, cela fonctionne pour moi: