7

我读过嵌入式容器比托管容器差,而托管容器又不如远程容器可靠。

Arquillian 允许您编写“真正的”测试,但我不知道这些容器类型之间的区别,主要是嵌入式与托管。

如果我在 Eclipse 中使用 Jboss,那是嵌入式容器还是托管容器?

如果我从命令行启动 Jboss,没有 Eclipse,那是嵌入式的、托管的还是远程的?

对于奖励积分,“独立”容器一词如何与这些术语相匹配?

4

1 回答 1

5

Max 链接的Target 容器品种文档提供了概念背景和术语:

Arquillian 识别三种容器交互方式:

  1. 远程容器驻留在与测试运行器不同的 JVM 中;Arquillian 绑定到容器以部署和取消部署测试存档并通过远程协议(通常是 HTTP)调用测试

  2. 嵌入式容器与测试运行器驻留在同一个 JVM 中;由 Arquillian 管理的生命周期;对于没有 Web 组件的容器(例如 Embedded EJB),测试是通过本地协议执行的,对于具有 Web 组件的容器(例如 Embedded Java EE),测试是通过远程协议执行的

  3. 托管容器与远程容器相同,但此外,其生命周期(启动/关闭)由 Arquillian 管理并作为单独的进程运行

现在我将尝试回答您的问题。

我读过嵌入式容器比托管容器差,而托管容器又不如远程容器可靠。

每种类型的容器都有其适当的用例。“更糟”或“更好”取决于您要做什么。

例如,大部分时间我都在编写容器运行的代码,所以我更喜欢使用远程容器进行测试,因为它节省了大量的启动/停止时间。

Arquillian 允许您编写“真正的”测试,但我不知道这些容器类型之间的区别,主要是嵌入式与托管。

上面链接的文档中解释了差异。

如果我在 Eclipse 中使用 Jboss,那是嵌入式容器还是托管容器?

它是远程的,因为 Arquillian 无法控制它。这是一个与 Arquillian 生命周期完全分离的过程。

如果我从命令行启动 Jboss,没有 Eclipse,那是嵌入式的、托管的还是远程的?

仍然是一个远程容器。Eclipse 启动 JBoss 的方式与使用命令行几乎相同,而 Arquillian 无法控制它。

对于奖励积分,“独立”容器一词如何与这些术语相匹配?

独立意味着服务器不是集中管理控制的一部分,这意味着对一个节点所做的任何更改都不会与其他节点协调。

例如,如果您在独立节点 1 上创建数据源,则不会将其复制到节点 2。

这就是为什么域配置更可取的原因,因为您将以集中方式管理整个集群(参考:操作模式)。

于 2017-04-30T13:41:11.620 回答