2010-05-19 8 views
1

J'ai un bean session sans état et un programme autonome Java qui joue le rôle de client. La méthode du bean s'exécute très bien lorsque l'interface est marquée @Remote. Cependant, lorsque je marque cette interface avec @Local au lieu de @Remote, j'obtiens l'exception suivante.@Annotation locale dans 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?] 

mais je m'y attendais, même ce dernier à travailler, car il est le même ordinateur que le code est exécuté dans.

En voyant ce comportement, je suppose que, l'application serveur et autonome Java -Le programme utilise différentes instances JVM et pas une seule instance JVM et ce client ne peut donc accéder qu'à une interface distante.

Cette hypothèse est-elle correcte?

Merci!

Répondre

4

Oui, c'est correct.

@Local Les interfaces ne doivent être utilisées que dans le même serveur d'application. Le serveur d'applications démarre une instance JVM et votre client autonome en démarre une autre.

+0

merci! c'est clair maintenant :) – stratwine