2

我正在我的持久性模型上编写 bean 验证。我需要调用我的 EJB Bean 以便从 DB 中检索一些配置参数。我怎样才能做到这一点?

我试图将我的 EntityValidator 标记为 @Stateless 和 @LocalBean,但 JBoss 仍然将我的 EntityValidator 视为 POJO。我能做点什么吗?或者,我如何从 POJO 中检索 EJB。

4

3 回答 3

2

从 Bean Validation 1.0 开始,您无法将 EJB 注入开箱即用的验证器中。不过,这将随着 Bean Validation 1.1 改变。

目前您有以下几种可能:

  • 通过 JNDI 检索 EJB:MyEjb myEjb = InitialContext.doLookup(myEjbName);
  • 实现一个自定义的ConstraintValidatorFactory,它将 EJB 引用注入到创建的验证器对象中
  • 使用Seam Validation,它启用了验证器对象的依赖注入@Inject(免责声明:我是 Seam Validation 的作者)

使用 Bean 1.1,这将是开箱即用的

于 2013-03-05T09:01:19.507 回答
1

目前,注入在验证器中不起作用。

我已经读到有计划未来扩展 bean 验证以启用该行为。

但是,应该有像 seam 或deltaspike这样的扩展,它可以让你提供注入。

检查这个: 验证器中的注入

于 2013-03-05T08:19:05.860 回答
0

我认为 jboss 不会将您的 bean 注入 JPA 验证器。

您可以使用 JDNI 为 POJO 查找 EJB。

于 2013-03-05T08:10:38.527 回答