2

当我运行 selenium 测试时,我已经有一个集成测试阶段。我还想在这个阶段运行一些单元测试,因为这个应用程序太复杂了,并且他的模块之间有很多依赖关系(地狱),所以,在与 OpenEJB 和 Arquillian 战斗一周后,我相信这将是更轻松。

问题是:我如何使它工作?

我的实例已经在运行,如果我实例化一个 InitialContext 并尝试查找一些 bean,我得到一个异常,告诉我我没有设置java.naming.initial.factory,并且我不知道该放什么。

我也在抱怨带注释的豆子。

假设一个像这样的 Bean:

@Stateless
public class ABeanImpl implements ABean {
  @EJB
  private BBean;
}

容器会自动正确BBean吗?

提前致谢

4

1 回答 1

1

如何连接到 JBoss 7.1 远程 JNDI:

这是我用于 JBoss 7.1 的代码片段:

Properties props = new Properties();
String JBOSS_CONTEXT = "org.jboss.naming.remote.client.InitialContextFactory";
props.put("jboss.naming.client.ejb.context", true);
props.put(Context.INITIAL_CONTEXT_FACTORY, JBOSS_CONTEXT);
props.put(Context.PROVIDER_URL, "remote://localhost:4447");
props.put(Context.SECURITY_PRINCIPAL, "jboss");
props.put(Context.SECURITY_CREDENTIALS, "jboss123");
InitialContext ctx = new InitialContext(props);

模糊 ejb 引用的解析:

根据JBoss EJB 3 参考,如果您的 EJB 环境(EJB/EAR/Server)的任何级别在使用的接口中存在重复,则在解析注入的 bean 期间将引发异常。

基于以上,如果你有一个 EJB bean 的引用,它的接口:

  • 在您的 EJB 模块(JAR/WAR)中有两个实现 - 将引发异常
  • 在您的应用程序中有两个实现(同一个 EAR 中的其他 EJB JAR) - 将抛出异常
  • 有两个实现,一个在带有 bean ABeanImpl的模块中,第二个在其他地方 - 使用当前模块的实现。
于 2013-06-26T23:00:54.393 回答