【发布时间】:2013-05-03 08:32:45
【问题描述】:
“应用程序客户端容器”(参见 here)是否与“嵌入式企业 Bean 容器”(参见 here)相同?
这两个描述对我来说听起来很像,但我想知道我是否遗漏了什么。或者为什么使用两个不同的术语?这两个术语有什么关系?
【问题讨论】:
标签: java oracle jakarta-ee containers sun
“应用程序客户端容器”(参见 here)是否与“嵌入式企业 Bean 容器”(参见 here)相同?
这两个描述对我来说听起来很像,但我想知道我是否遗漏了什么。或者为什么使用两个不同的术语?这两个术语有什么关系?
【问题讨论】:
标签: java oracle jakarta-ee containers sun
虽然不是很明显,但它们完全不同。
应用程序客户端容器 (ACC)
...ACC 管理 Java EE 应用程序客户端组件(应用程序客户端)的执行,这些组件用于访问各种 Java EE 服务...在 Oracle GlassFish Server 之外。 ACC 使用 RMI-IIOP 与 GlassFish Server 通信
嵌入式企业 Bean 容器
...容器和客户端代码在同一个虚拟机中执行
区别
ACC 仅启用远程 JVM 中的客户端应用程序(Java EE 组件的使用者)之间的连接。也就是说,您将有一个在 JVM A1 中运行的客户端 A,连接到 Glassfish 服务器,在 JVM B1 中运行。 ACC 本身无法支持 JavaEE 的优点(EJB、安全性、拦截器事务等)。
另一方面,EEC 基本上是一个 API,它将在单个 JVM 中提供所有这些功能。也就是说,您可以使用 main 方法开发一个小型 Java 类,并在该单一 main 方法中提供所有这些好东西。
//Adding this line to a main method effectively puts a Java EE container within that JVM, without having to install anything
EJBContainer ec = EJBContainer.createEJBContainer();
总之,ACC - 连接到远程 JVM 中的 JavaEE 容器,EEC,在本地 JVM 中提供 JavaEE 容器功能
【讨论】:
appclient -client localdir\your-appClient.jar 但是您必须以某种方式为 appClient.jar 提供 EJB 远程接口。 GlassFish 工具为您提供的“客户端存根”不包含所需的类文件。