Почему я не могу поймать исключения EJB? - PullRequest
3 голосов
/ 03 декабря 2010

Я не могу поймать исключения, такие как NoResultException или EJBException в моем проекте Java Java 6Есть ли что-то, что я делаю не так?Я обнаружил исключения вне контейнера 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;
    }

1 Ответ

1 голос
/ 03 декабря 2010

Что если вы поместите два кода System.out.printlns в код?Один в обработчике исключений и один прямо перед оператором if.Что вы получаете?

Глядя на код, я бы сказал, что вы сможете перехватить исключение, которое должно быть исключением JPA, заключенным в EJB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...