在Interceptor中抛出ConstraintViolationException

bos*_*kop 3 java java-ee interceptor bean-validation

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

我看到的唯一缺点是客户端得到EJBException并且必须打开主要的Exception.还有一些我看不到的问题或脏东西,甚至是更好的方法吗?

Alf*_*Alf 5

创建ConstraintViolationException一个ApplicationException.

如果还没有,请创建一个ejb-jar.xml文件(如果ejbs打包在战争中,则在/ 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>
Run Code Online (Sandbox Code Playgroud)

您可以为EJB 3.0或更高版本执行此操作