2010-05-19 45 views
1

我有一個無狀態會話bean和一個作爲客戶端的獨立java程序。當接口標記爲@Remote時,bean方法執行得很好。但是,當我使用@Local而不是@Remote標記該接口時,出現以下異常。@ EJB 3中的本地註釋

[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?] 

但我預計,即使後者的工作,因爲它是該代碼執行相同的計算機。

看到這種行爲,我假設,在應用程序服務器和獨立的Java - 程序使用不同的JVM實例,而不是單個JVM實例,因此該客戶端只能通過遠程接口訪問。

這個假設是否正確?

謝謝!

回答

4

是的,它是正確的。

@Local接口只能在同一個應用程序服務器中使用。應用程序服務器啓動一個JVM實例,並且您的獨立客戶端啓動另一個JVM實例。

+0

謝謝!它現在清晰:) – stratwine 2010-05-19 12:21:12