Sto sviluppando un'applicazione REST utilizzando Glassfish 4.0.GlassFish 4 + Filtro JAX-RS con @EJB
Nelle classi di risorse posso far funzionare l'iniezione rendendo la classe @Stateless e l'iniezione tramite @EJB (la classe iniettata è un EJB senza stato).
Tuttavia questo approccio non funziona in un filtro JAX-RS. Non riesco a fare in modo che l'iniezione funzioni.
See codice qui sotto:
@Provider
public class UpdateFilter implements ContainerRequestFilter {
@EJB
private MyBeanInterface doStuffBean;
@Override
public void filter(ContainerRequestContext requestContext) {
...
}
}
doStuffBean è sempre nullo.
Qualche suggerimento?
@Inject non funziona. Viene sollevata un'eccezione: ** UnsatisfiedDependencyException: nessun oggetto disponibile per l'iniezione ... **. – bafitor
Ecco perché la tua classe non è un bean gestito. Non sono sicuro che sia in grado di rendere questo Provider un ManagedBean, quindi probabilmente dovrai creare il tuo produttore che esegue la ricerca EJB e quindi puoi immetterlo ovunque (ci sono molti articoli che mostrano come farlo) o tu può solo fare la ricerca in questa classe. – ZeusSelerim