EJBException suivi du NoSuchEJBException lors d'une autre tentative d'appel
Bonjour,
Mon problème :
Je fonctionne avec glassfish où j'ai tous mes EJBs, et Swing comme interface cliente. Pour l'instant le code client est simple, c'est deux JTextfield et un JButton, où on demande des logins. J'ai un ActionListener attaché à mon boutton, qui fait un lookup sur mon EJB stateful dans le constructeur. Dans le actionPerformed(..) j'appelle une méthode connect(String,String) de mon EJB session, qui peut lever une exception du type PSCDBadLoginException ( une RuntimeException à moi ).
Le problème, si je tape les bons logins ça fonctionne parfaitement, par contre si je tape de mauvais logins, mon client n'attrape jamais de BadLoginException ( pourquoi ? ). Sur la trace, j'ai un EJBException. Puis à la tentative suivante, même en tappant les bons logins, j'ai un NoSuchEJBException, comme si j'avais perdu la référence sur mon EJB.
Un peu de code :
La methode de l'EJB :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public void connect(String login, String password) {
User u = this.dur.getUserByLogin(login); //dur est un dao.
if(u == null)
throw new PSCDBadLoginException("login incorrect", 0x0004);
if(u.getPass().equals(password))
this.usr = u;
else
throw new PSCDBadLoginException("mot de passe incorrect", 0x0005);
} |
L'actionPerformed :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
try{
this.lmr.connect(this.jtfLog.getText(), this.jtfPass.getText());
for(int i=0; i<this.jmb.getMenuCount(); i++){
JMenu jm = this.jmb.getMenu(i);
jm.setEnabled(true);
}
this.jmb.getMenu(0).getItem(0).setEnabled(false);
this.jmb.getMenu(0).getItem(1).setEnabled(true);
//MainFrame.getConnectionDialog().setVisible(false);
}catch(PSCDBadLoginException exc){ //Jamais attrapé
exc.printStackTrace();
}catch(EJBException exc){
exc.printStackTrace();
} |