stratwine
stratwine

Reputation: 3701

@Local annotation in EJB 3

I have a stateless session bean and a standalone-java-program acting as a client. The bean method executes just fine when the interface is marked @Remote. However,when I mark that interface with @Local instead of @Remote, I get the following Exception.

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

But I expected even the latter to work, since it is the same computer that the code executes in.

Seeing this behavior, I am assuming that, the Application-Server and the Standalone-Java-Program use different JVM instances and not a single JVM instance and so this client can access only through a remote interface.

Is that assumption correct ?

Thanks !

Upvotes: 1

Views: 7217

Answers (1)

Bozho
Bozho

Reputation: 597382

Yes, it is correct.

@Local interfaces are to be used only within the same application-server. The application server starts one JVM instance, and your standalone client starts another.

Upvotes: 5

Related Questions