gpt4 book ai didi

exception - 为什么我无法捕获 EJB 异常?

转载 作者:行者123 更新时间:2023-12-02 11:06:11 25 4
gpt4 key购买 nike

我似乎无法在我的 java ee 6 项目中捕获 NoResultException 或 EJBException 等异常。我做错了什么吗?我在 EJB 容器之外捕获了异常,但这是我第一次使用 EJB。谢谢。

@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;
}

最佳答案

如果在代码中放入两个 System.out.println 会怎样?一个位于异常处理程序中,另一个位于 if 语句之前。你得到了什么?

查看代码,我想说您将能够捕获该异常,该异常应该是包装在 EJB 异常中的 JPA 异常。

关于exception - 为什么我无法捕获 EJB 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com