Ich kann anscheinend keine Ausnahmen wie NoResultException oder EJBException in meinem Java EE 6 Projekt abfangen. Gibt es etwas, was ich falsch mache? Ich habe Ausnahmen außerhalb des EJB-Containers erfasst, aber dies ist das erste Mal, dass ich EJB verwende. Vielen Dank.Warum kann ich keine EJB-Ausnahmen erfassen?
@Stateless
public class UserEJB {
@PersistenceContext
EntityManager em;
public String getUserName(User user) {
return user.getName();
}
public User fetchUserByEmail(String email) {
User user = em.createNamedQuery("User.findByEmail", User.class).setParameter("email", email).getSingleResult();
return user;
}
public User fetchUserById(int id) {
return em.createNamedQuery("User.findByUserId", User.class).setParameter("userId", id).getSingleResult();
}
public List<User> fetchAllUsers() {
return em.createNamedQuery("User.findAll", User.class).getResultList();
}
}
@Named(value = "userController")
@RequestScoped
public class UserController {
private User user = new User();
@EJB
UserEJB userEJB;
@Inject
SecurityController securityController;
public UserController() {
}
public void login(ActionEvent event) {
try {
User userLogin = userEJB.fetchUserByEmail(user.getEmail());
} catch (Exception e) {
}
if (userLogin.getPassword().equals(user.getPassword())) {
securityController.setIsLoggedIn(true);
securityController.setIsAdmin(true);
securityController.setUser(user);
}
}
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
Woher wissen Sie, dass die Ausnahme nicht ausgelöst wird, wenn Sie 'Exception' fangen und nicht protokollieren? catch (Exception e) {} Versuchen Sie 'e.printStacktrace()' ' –
zu schreiben Wären Sie in der Lage, den Stack-Trace aus dem Glassfish-Log hier hinzuzufügen? –
Die Antwort, die Sie angenommen haben, hat Ihr Problem gelöst? Ich habe das gleiche Problem –