0

我有一个作为 Maven 测试运行的 Maven 客户端项目。我在 junit 测试中做的第一件事是使用 jndi 字符串进行查找。在这里,我收到一个无状态 bean 代理,它被转换为远程接口。一旦我从接口调用一个方法(比如保存一些使用数据访问对象的域对象至极使用 jpa),我就会收到异常

javax.ejb.NoSuchEJBException: No such EJB[appname=,modulename=someName,distinctname=,beanname=SomeBean]

文档说:“如果尝试在不再存在的有状态会话或单例对象上调用业务方法,则会引发 NoSuchEJBException”。问题是 bean 是无状态的,不是有状态的或单例的。我也很确定 jndi 字符串是正确的,因为如果我在客户端项目的主要方法中进行相同的查找和持久性方法调用(使用“安装 jboss-as:deploy”作为 maven 构建运行)一切工作正常。有什么建议我可以在测试时使用代理中的持久性方法吗?一些同事有类似的设置,并且在没有 Arquillian 左右的情况下也适用于他们。

4

1 回答 1

0

我不知道为什么,但它现在有效。我所做的是在所有 DaoBean 继承的抽象通用 DaoBean 中删除 EntityManager 的 getter 方法。在执行客户端时,getter 突然显示为错误(之前未显示为错误)。

于 2012-05-02T09:57:58.520 回答