了解可嵌入的EJBContainer

时间:2016-09-23 13:58:07

标签: java java-ee ejb integration-testing

我花了一些时间试图理解Embeddable Enterprise Bean Applications,但仍需要一些澄清。假设我需要Junit来测试EJB应用程序。

所以我假设应该发生什么,请帮我弄清楚正确答案:

  1. Junit是入口点,它将EJB应用程序部署到服务器?因此,EJB和Jboss是"嵌入式"进入测试。
  2. Junit和' EJB'应用程序是两个独立的JVM进程,它们以某种方式通过jndi名称或其他东西进行通信(我不使用远程EJB)。
  3. 真正的服务器(JBoss)从未使用过,而EJBContainer只是一种模拟。
  4. 别的。
  5. 编辑:

    我找到了example

    您能否对此代码发表评论:

    @Test
    public void test() throws Exception {
              String jbossHomeDir = "E:\\dev_station\\java_station\\Serveurs\\jboss-as-7.1.1.Final";
              System.setProperty("jboss.home.dir", jbossHomeDir);
              StandaloneServer server = EmbeddedServerFactory.create(new File(
                                  jbossHomeDir), System.getProperties(), System.getenv(),
                                  "org.jboss.logmanager");
              server.start();
              server.deploy(new File("target/classes"));
              Context namingContext = server.getContext();
    } 
    

1 个答案:

答案 0 :(得分:2)

Java EE 6教程(问题中的第一个链接)说

  

嵌入式容器,企业bean组件和客户端都使用相同的类路径在同一个虚拟机中执行。

即,JUnit测试(“客户端”),嵌入式容器(由JBoss Wildfly,Glassfish等实现)和Java EE应用程序组件(EJB等)都在同一个JVM实例中运行(同样的过程)。

没有什么是嘲笑的。容器服务(事务,注入等)由实际的Java EE服务器实现提供。

因此,问题中列出的四个正确的替代方案是数字 1

相关问题