我是 Java EE 的新手。目前我正在阅读Sun Microsystems的 The Java EE 6 Tutorial, Volume 1 (Basic Concepts Beta)。为了摆脱单调的阅读时间,我玩了一些其他人编写的 Java EE 项目/代码。
我来自东南。我的脑海里仍然充满了 SE。在 SE(两层应用程序)中,我使用
DATABASE_URL = "jdbc:mysql://something.db_server.com/db_name"
这就是我的客户知道数据库服务器在哪里的方式。
在我看到的一个 Java EE 示例中
// 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();
这个我明白。该代码具有 url 和端口号。有这条线
p.put("java.naming.provider.url","jnp://localhost:1099");
客户端通过 url 知道服务器在哪里以及要敲哪个端口。我认为代码是在 Java EE 5 时编写的。
今天我发现了另一个使用 Netbeans 7、Java EE 6 和 GlassFish 3 的示例。客户端代码
@EJB
private static MySessionRemote mySession;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JOptionPane.showMessageDialog(null,
"result = " + mySession.getResult());
}
这是链接 http://netbeans.org/kb/docs/javaee/entappclient.html
没有给出 url 和端口号。
Java EE 6 Development with Netbeans 7 by David R. Heffelfinger 在第 7 章中有一个类似的例子。作者没有在书中解释它是如何完成的。我认为他做到了,但我可能错过了……</p>
我的问题是客户端如何在没有 url 的情况下定位服务器?它是否在这些 xml 文件之一中说明?客户端可以在加利福尼亚,GlassFish Server 可以在纽约。任何人都可以向我解释或指向我可以找到答案的任何教程/博客/文章吗?
谢谢你。