java - 在拦截器中抛出 ConstraintViolationException

标签 java jakarta-ee interceptor bean-validation

我在 JEE 应用程序中有一些 SessionBean,并且喜欢使用 BeanValidation 来验证我的参数。因此整个验证过程是通用的并封装在一个地方。

我看到的唯一缺点是客户端得到一个 EJBException 并且必须打开主异常。是否还有其他一些我没有看到的问题或脏东西,或者更好的方法?

最佳答案

使 ConstraintViolationException 成为 ApplicationException .

如果您还没有,请创建一个 ejb-jar.xml 文件(如果 ejb 是在 war 中打包的,则在/WEB-INF 中,否则在/META-INF 中):

<ejb-jar>
    <assembly-descriptor>
        <application-exception>
            <exception-class>javax.validation.ConstraintViolationException</exception-class>
            <rollback>true</rollback>
        </application-exception>
    </assembly-descriptor>
</ejb-jar>

你可以为 EJB 3.0 或更高版本做

关于java - 在拦截器中抛出 ConstraintViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23486935/

相关文章:

jakarta-ee - 应用服务器使用什么java运行环境?

java - 如何确保在 mockito 中只调用一次模拟对象

java - 如何使用准备好的语句的占位符来绑定(bind)表名的变量

java - 用于按浮点参数对对象数组列表进行排序的比较器

hibernate - Spring Boot 2.0.0 M6 - 添加 hibernate 拦截器

javascript - 获取和获取重试的拦截器? (Javascript)

java - okhttp - 拦截器 - 阻止非致命异常记录到 Crashlytics

java - 从数据库中获取长值

java - 从部署在 tomcat 服务器中的 JSP 打开共享本地文件夹(C 盘或 D 盘等)

java - 如何让 web-fragment.xml 工作