blackskop
17-11-2008, 18:37
Salve, è possibile utilizzare le annotations in oggetto in una classe che non sia una servlet (ma che comunque fa parte di un progetto web e che può accedere ad un progetto ejb)? Ho provato a creare una servlet come questa
public class Registration extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceUnit(name="BlahEJB")
EntityManagerFactory emf;
@EJB
private UserFacadeLocal users;
public Registration() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
isRegistered();
}
public boolean isRegistered() {
users.blah();
return true;
}
}
e ad utilizzare il metodo isRegistered come webservice. Nel metodo isRegistered uso UserFacadeLocal users e mi servirebbe anche in una classe di utility che non è una servlet. Quindi ricreando una classe simile alla precedente, ma senza l'estensione HttpServlet, le annotation
@PersistenceUnit(name="BlahEJB")
EntityManagerFactory emf;
@EJB
private UserFacadeLocal users;
non hanno effetto perchè se poi provo a creare un webservice, il membro users resta a null "perchè è saltata l'iniezione" da parte dell'application server.
Quindi, ricapitolando, è possibile utilizzare le annotations @PersistenceUnit e @EJB in una classe normale (che non sia una servlet)?
public class Registration extends HttpServlet {
private static final long serialVersionUID = 1L;
@PersistenceUnit(name="BlahEJB")
EntityManagerFactory emf;
@EJB
private UserFacadeLocal users;
public Registration() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
isRegistered();
}
public boolean isRegistered() {
users.blah();
return true;
}
}
e ad utilizzare il metodo isRegistered come webservice. Nel metodo isRegistered uso UserFacadeLocal users e mi servirebbe anche in una classe di utility che non è una servlet. Quindi ricreando una classe simile alla precedente, ma senza l'estensione HttpServlet, le annotation
@PersistenceUnit(name="BlahEJB")
EntityManagerFactory emf;
@EJB
private UserFacadeLocal users;
non hanno effetto perchè se poi provo a creare un webservice, il membro users resta a null "perchè è saltata l'iniezione" da parte dell'application server.
Quindi, ricapitolando, è possibile utilizzare le annotations @PersistenceUnit e @EJB in una classe normale (che non sia una servlet)?