EJB 3中的@Local注释

时间:2010-05-19 11:05:48

标签: java ejb-3.0

我有一个无状态会话bean和一个充当客户端的独立java程序。当接口标记为@Remote时,bean方法执行得很好。但是,当我用@Local而不是@Remote标记该接口时,我得到以下异常。

 [java] javax.naming.NamingException: Could not dereference object [Root exception is java.lang.RuntimeException: Could not find InvokerLocator URL at JNDIaddress "chapter1/HelloUserBean/local"; looking up local Proxy from Remote JVM?]

但我预计即使后者也能工作,因为它与代码执行的计算机相同。

看到这种行为,我假设,Application-Server和Standalone-Java-Program使用不同的JVM实例而不是单个JVM实例,因此该客户端只能通过远程接口访问。

这个假设是否正确?

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,这是正确的。

@Local接口仅在同一个应用程序服务器中使用。应用程序服务器启动一个JVM实例,而独立客户端启动另一个JVM实例。