我在使用EJB和Spring MVC的应用程序中使用Hibernate Validator。我使用JBoss 5时,Hibernate 3和Spring MVC版本3.Hibernate验证程序异常
我想尝试和捕捉验证异常在春季异常解析器水平,并基于该InvalidStateException
消息的错误消息。我不想在数据访问层中放置异常处理逻辑;我希望这是由注释驱动,并在一个集中的地方处理验证错误。
当我尝试创建无效实体(例如,违反字段上的长度约束)时,域模型正在被正确验证,并且类型InvalidStateException
的异常被按预期抛出。在试图在我的Spring Exception解析器实例中捕获异常的时候,我发现我原来的异常已经消失,并取代了它的位置。原来的例外不在列表引起的。
我的第一个猜测是org.hibernate.validator.InvalidStateException
没有用ApplicationException
注释,所以我安装了一个Hibernate事件侦听器,捕获了原始异常,并将其重新引发为一个新的异常,注解为ApplicationException
。这没有效果。
另一个复杂性是Web层通过远程接口调用EJB。我注释了我的异常类WebFault
,但无济于事。
我应该怎么做才能确保例外气泡一路向上?
谢谢 - 我没有看到EJBException方法“getCausedByException”。我明天会看看这个,并接受它是否有效! – 2009-11-12 20:52:05
是的,声明一个具有相同想法的新方法有点奇怪。 – Bozho 2009-11-12 21:11:21