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

2023-12-22

我似乎无法在我的 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 异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我无法捕获 EJB 异常? 的相关文章

随机推荐

  • 如何通过 Python/Boto3 添加 DynamoDB 全局二级索引

    是否可以在创建现有 DynamoDB 表后添加全局二级索引 我将 Python 3 x 与 Boto3 一起使用 但无法找到在创建表后将它们添加到表中的任何示例 一般来说 是的 可以添加全局二级索引 GSI 创建表后 然而 更改可能需要很长
  • 在 GAE 项目中的灵活环境模块之间共享代码

    我正在将我的 GAE flex 项目构建为多种服务 my project services service 1 service 1 yaml service 2 service 2 yaml 我现在想在服务之间共享一些代码 理想情况下 我希
  • 如何等待一系列任务并停止等待第一个异常?

    我有一系列任务 我正在等待它们Task WhenAll https learn microsoft com en us dotnet api system threading tasks task whenall 我的任务经常失败 在这种情
  • 在 Ubuntu 中自动安装基于包的 Perl 模块

    我想安装特定 Perl 脚本所需的 Perl 模块 例如perl depends工具 不过 我想在 Ubuntu 中使用apt get 意味着通过包存储库而不是通过 CPAN 安装模块 最相似的问题 例如this one https sta
  • Rails 中的全文 mysql 搜索

    我正在尝试将一个简单的 mysql 全文搜索添加到一个 请不要告诉我安装 solr 或任何其他搜索宝石 我尝试运行它们 这似乎是一个又一个问题 有一天我会抽出时间来做这件事 但那一天不是今天 我需要添加 add index 迁移 但是当我运
  • Visual Studio 2008 Express 无法识别我的 Sql Server 2008 Express

    我最近安装的顺序是 SQL Server 2008 Express 可视化 Web 开发人员速成 2008 当我右键单击 app data 并尝试添加数据库时 它返回 与 SQL Server 文件 mdf 的连接需要 SQL Server
  • 有没有办法在原生 CommonJS 环境中使用 JSX?

    我正在一个具有本机的环境中启动一个新项目CommonJS支持require模块 这是一个atom shell项目 不可能使用预编译步骤 例如在Browserify或webpack AFAIK中 我可以在我的设备上使用 JSXapp jsx在
  • JSON-WSP 或 JSON-RPC [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 Eclipse 与大型工作区结合使用

    我们当前的产品基于 Eclipse RCP 当我们尝试将整个代码库放在一个 Eclipse 工作区中并且我们想知道其他人在做什么时 我们开始遇到问题 这是我们的设置 225 个 eclipse 项目 全部在 trunk project 中
  • 没有 Springboard 的 iOS:由于没有系统事件服务器而终止

    我正在尝试使用 IB 与 Springboard 创建一个简单的 Hello World 应用程序 添加一个按钮及其与操作例程的连接后 我得到以下信息 由于没有系统事件服务器而终止 运行事件泵 或者如果您想运行 请传递参数 Register
  • SSE 浮点运算可以重现吗?

    x87 FPU 因使用内部 80 位精度模式而闻名 这通常会导致跨编译器和机器出现意外且不可重现的结果 在我的搜索中 https stackoverflow com questions 14864238 coercing floating
  • Java - 正则表达式替换美元符号之间的文本

    我正在使用 JAVA 并且想要替换美元符号之间的每个文本实例 例如 1st equation frac 1 mu 1 frac 2 pi lambda x 2nd equation 90 0 3rd equation frac mu t 2
  • 将系统设置为始终使用圆角字体?

    在 SwiftUI 中 有没有办法让系统字体的圆角版本成为所有样式的默认字体 我对应用程序中的所有文本使用一种系统样式 body title headline 等 例如 我可以在单个文本视图上使用它 Text some text font
  • 是什么导致 IE 8 在网站加载时暂停?

    大家好 我想看看你们中是否有人在 Internet Explorer 8 上经历过同样的事情 当我去加载我构建的网站时 我可以看到整个页面已加载 但它之前暂停了大约 8 秒您可以滚动或移动 一旦暂停完成 就可以滚动 但如果您单击不同的页面
  • 从 Swift REPL 中,如何获取可用模块的列表?

    从 Swift REPL 我可以通过以下方式导入 Foundation 等框架模块import Foundation 我可以在 REPL 上发出什么命令来生成可导入的所有模块的列表 附录 只是为了真正清楚我想要理解的内容 在 REPL 上
  • 在升级安装期间删除旧文件版本

    我正在 InstallShield Pro 2010 中使用纯 InstallScript 安装 我们的软件中的第三方 jar 文件已被替换为新版本 运行升级安装时 会安装新的 jar 但旧的 jar 也会保留 糟糕的事情接踵而至 如何让
  • 使用 Eclipse CDT/RSE/RDT 远程调试 C++ 应用程序

    我正在与 Eclipse 在 Windows 中 进行斗争 使其连接到我的 Linux 机器并在那里远程编译和调试 C 代码 我正在做的工作 安装 CDT RSE RDT Eclipse Juno CDT 8 1 2 PTP RDT 6 0
  • 创建 Spring 枚举 bean 并传递方法调用的值

    我有这个单例 public enum Elvis INSTANCE private int age public int getAge return age 我知道如何在 Spring 中创建枚举 bean
  • NextRouter 未安装 Next.JS

    Using import useRouter from next router as import useRouter from next navigation 抛出 pathname string query search string
  • 为什么我无法捕获 EJB 异常?

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