Java 在相同或不同的JVM中没有接口视图和@Local EJB';服务器?
我对EJBbean中无接口视图和Java 在相同或不同的JVM中没有接口视图和@Local EJB';服务器?,java,jvm,ejb,local,Java,Jvm,Ejb,Local,我对EJBbean中无接口视图和@Local-视图之间的区别有点困惑 声明没有接口视图的bean可以由位于同一JavaEE应用程序中的客户端寻址,而实现@Local接口的bean可以由位于同一JVM中但可能位于单独JavaEE应用程序中的客户端访问,对吗 JVM的确切含义是什么?具有@Local-接口的bean在同一台服务器上,因为通常每个服务器都有一个Java虚拟机 我们还可以说,每台服务器有一个JVM,并且从其主方法执行的每个java应用程序都独立地使用JVM的一个实例吗 对不起,我的问题很
@Local
-视图之间的区别有点困惑
声明没有接口视图的bean可以由位于同一JavaEE应用程序中的客户端寻址,而实现@Local
接口的bean可以由位于同一JVM中但可能位于单独JavaEE应用程序中的客户端访问,对吗
JVM的确切含义是什么?具有@Local
-接口的bean在同一台服务器上,因为通常每个服务器都有一个Java虚拟机
我们还可以说,每台服务器有一个JVM,并且从其主方法执行的每个java应用程序都独立地使用JVM的一个实例吗
对不起,我的问题很棘手 是的,通常情况下,您将有一个JVM运行一个应用程序服务器和一个或多个应用程序,并且
@Local
接口将允许您的应用程序相互使用ejb
通过调用Java应用程序的
main()
方法运行Java应用程序将创建一个新的JVM来运行该应用程序,但我不知道这与EJB
有什么关系是的,通常您会有一个JVM运行带有一个或多个应用程序的单个应用程序服务器,而@Local
接口将允许您的应用程序相互使用ejb
通过调用Java应用程序的main()
方法运行Java应用程序将创建一个新的JVM来运行该应用程序,但我不知道这与EJB
有什么关系,无接口视图(@LocalBean
)和@Local
都是本地接口,几乎相同。唯一的区别是@Local
使用一个单独的接口作为代理,而@LocalBean
使用bean类本身作为代理(EJB容器生成一个覆盖所有业务方法的子类)
EJB规范声明EJB容器只需要支持同一应用程序中的本地接口。应用程序服务器可以实现跨应用程序的相同JVM本地接口(@LocalBean
或@local
),但它们不需要这样做
如果您不熟悉这个术语,最简单的方法是简化“JVM”并将其视为“java过程”。因此,是的,java-cp…
和java-jar…
启动包含单个JVM的单个java进程,而应用程序服务器进程通常是使用java
启动的单个进程,因此它也包含单个JVM。是的,您还可以说,@Local
ejb只能从同一个Java进程或同一个JVM(或者通常是同一个javaee应用程序)调用,因为大多数应用程序都是可移植编写的,不需要跨应用程序的本地ejb)。无接口视图(@LocalBean
)和@Local
都是本地接口,几乎相同。唯一的区别是@Local
使用一个单独的接口作为代理,而@LocalBean
使用bean类本身作为代理(EJB容器生成一个覆盖所有业务方法的子类)
EJB规范声明EJB容器只需要支持同一应用程序中的本地接口。应用程序服务器可以实现跨应用程序的相同JVM本地接口(@LocalBean
或@local
),但它们不需要这样做
如果您不熟悉这个术语,最简单的方法是简化“JVM”并将其视为“java过程”。因此,是的,
java-cp…
和java-jar…
启动包含单个JVM的单个java进程,而应用程序服务器进程通常是使用java
启动的单个进程,因此它也包含单个JVM。是的,您还可以说,@Local
ejb只能从同一个Java进程或同一个JVM(或者通常是同一个javaee应用程序)调用,因为大多数应用程序都是可移植编写的,不需要跨应用程序的本地ejb).这意味着在两个不同的JVM实例中通过主方法调用两个应用程序,不允许我在@Local时使用彼此的EJB?我没有说过,但是为什么要在同一台机器上运行两个EJB容器呢?这意味着,通过在两个不同的JVM实例中调用两个应用程序的主方法,当它们是@Local时,不允许我使用彼此的EJB?我没有这么说,但是为什么要在同一台机器上运行两个EJB容器呢?