gpt4 book ai didi

java - 了解可嵌入的EJBContainer

转载 作者:搜寻专家 更新时间:2023-11-01 02:59:33 24 4
gpt4 key购买 nike

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

所以我有假设应该发生什么,请帮我找出正确答案:

  1. Junit 是入口点,它将 EJB 应用程序部署到服务器?使 EJB 和 Jboss 被“嵌入”到测试中。
  2. Junit 和“EJB”应用程序是两个独立的 JVM 进程,它们以某种方式通过 jndi 名称或其他方式进行通信(我不使用远程 EJB)。
  3. 从未使用过真实服务器 (JBoss),EJBContainer 只是一种 Mock。
  4. 其他。

已编辑:

我找到了一个 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();
}

最佳答案

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

The embedded container, the enterprise bean components, and the client all are executed in the same virtual machine using the same classpath.

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

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

因此,问题中列出的这四个选项之间的正确选择是数字 1

关于java - 了解可嵌入的EJBContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39662649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com