alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012
-
23 févr. 2012 à 21:09
alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012
-
6 mars 2012 à 12:14
salut,
je suis entrain de faire une application avec struts2 + EJB3
et j'ai déjà avancé dans ce projet
mais le problème est que je suis dans l'obligation d'ajouter la notion d'injection par spring (en utilisant le design pattern service locator et IOC)
mais je n'arrive pas à intégrer ce concept dans mon projet
pour le moment dans mon projet web j’écris ce code dans la class UserAction.java
public class UserAction extends ActionSupport{
private UserDaoRemote userDao;
public UserDaoRemote getUserDao() {
return userDao;
}
public void setUserDao(UserDaoRemote userDao) {
this.userDao = userDao;
}
public UserAction() {
try {
Context context=new InitialContext();
setUserDao((UserDaoRemote) context.lookup("test"));//ici normalement introduit la notion d'injection
} catch (Exception e) {
e.printStackTrace();
}
}
}
alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012 1 mars 2012 à 08:41
je pense Si je veux passer à Spring, je dois créer un fichier de context en lui ajoutant seulement la base <context:scan-base-package="la liste de mes packages avec une virgule pour les séparer"/> et sur toutes les classes que ju souhaites que Spring gère le cycle de vie tu leur ajoute l'annotation @Component et c'est fait.
donc pour la class class UserAction
@Component
public class UserAction extends ActionSupport{
private UserDaoRemote userDao;
private List users;
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users = users;
}
public UserDaoRemote getUserDao() {
return userDao;
}
public void setUserDao(UserDaoRemote userDao) {
this.userDao = userDao;
}
public UserAction() {
try {
Context context=new InitialContext();
setUserDao((UserDaoRemote) context.lookup("test"));//ici normalement introduit la notion d'injection
} catch (Exception e) {
e.printStackTrace();
}
}
public String getAllUsers(){
users=userDao.lisAll();
return "success";
}
}
alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012 6 mars 2012 à 12:14
vraiment je suis bloqué dans cet étape malgrés les recherches dans les tutos de spring
comme je dis j'arrive à faire tourner une projet JEE en utilisant EJB3 et struts2
le nom de projet EJB s'appel : projetTestEJB et le nom de projet WEB avec struts2 s'appel : projetStruts2
mais le problème actuel est comment faire l'injection (normalement l'injection des EJB) en utilisant spring
en suivant l'annotation de spring
j'ajoute @Component dans la class UserAction
@Component
public class UserAction extends ActionSupport{
private UserDaoRemote userDao;
private List users;
public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users = users;
}
public UserDaoRemote getUserDao() {
return userDao;
}
public void setUserDao(UserDaoRemote userDao) {
this.userDao = userDao;
}
public UserAction() {
try {
Context context=new InitialContext();
setUserDao((UserDaoRemote) context.lookup("test"));
} catch (Exception e) {
e.printStackTrace();
}
}
public String getAllUsers(){
users=userDao.lisAll();
return "success";
}
}
dans cet class j'essaye d'utiliser lannotation @EJB mais ca marche pas
c'est pour cela j'utilise InitialContext. ( et ca marche parfaitement)