Comment l'EJB client de localiser le serveur EJB sans url?

Je suis nouveau sur Java EE. À l'heure actuelle j'en suis Java EE 6 Tutoriel, Volume 1 (Concepts de Base de la Bêta) par Sun Microsystems. Pour s'échapper de la monotone de lire de temps en temps je joue avec quelques Java EE projets/codes écrits par d'autres.

Je suis venu de SE. Ma tête est encore rempli avec de SE. Dans le sud-est (à deux niveaux application) j'utilise

DATABASE_URL = "jdbc:mysql://something.db_server.com/db_name"

C'est comment mon client sait où le serveur de base de données.

Dans un exemple en Java EE, j'ai vu

//Access JNDI Initial Context.

Properties p = new Properties();

p.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
p.put("java.naming.provider.url","jnp://localhost:1099");
p.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");

InitialContext ctx = new InitialContext(p);

//Change jndi name according to your server and ejb

HelloRemote remote = (HelloRemote) ctx.lookup("HelloBean/remote");

msg = "Message From EJB --> " + remote.sayHello();

Ce que je comprends. Le code de l'url et le numéro de port. Il y a cette ligne

p.put("java.naming.provider.url","jnp://localhost:1099");

Côté Client sait où est le serveur par l'url et le port de frapper. Je pense que le code a été écrit à l'époque de Java EE 5.

Aujourd'hui, j'ai trouvé un autre exemple où Netbeans 7, Java EE 6 et GlassFish 3 sont utilisés. Le côté client code

@EJB
private static MySessionRemote mySession;

/**
 * @param args the command line arguments
 */

public static void main(String[] args) {
    JOptionPane.showMessageDialog(null, 
            "result = " + mySession.getResult());
}

Voici le lien
http://netbeans.org/kb/docs/javaee/entappclient.html

Pas d'url et le numéro de port donné.

Java EE 6 Développement avec Netbeans 7 par David R. Heffelfinger a un exemple similaire dans le chapitre 7. L'auteur n'explique pas comment c'est fait dans le livre. Je pense qu'il a fait, mais je l'ai probablement manqué...

Ma question est de savoir comment le côté client de localiser le serveur sans l'url? Est-il indiqué dans un de ces fichiers xml? Le Client peut être en Californie et le Serveur GlassFish peut être à New York. Quelqu'un peut-il m'expliquer ou point-à-tutoriel/blog/article où je peux trouver la réponse?

Merci.

Je recommande le Oracle Java EE 6 Tutoriel. À partir de votre question, il n'est pas clair si vous souhaitez accéder à distance à un EJB, ou d'une base, ou d'autres ressources, ou si vous envisagez de développer une application web.
Si c'est une application web, alors la réponse est simple: l'EJB client exécute physique de la même machine. Vous ne devez pas confondre les EJB client avec le client HTTP (navigateur web).
Merci pour vos réponses. Il n'est pas d'application web.

OriginalL'auteur S A | 2012-11-30