在 java EE 中,从远程服务器获取 EJB 的方法是在 JNDI 中查找它。该规范定义了给定 bean 类型的 JNDI 名称。
但是,这似乎仅适用于您想从本地计算机获取 Bean 的情况。我想像大多数用户一样从远程服务器上获取 bean。如何指定服务器 URL?我是否将映射传递给 InitialContext
构造函数?
注意:有another question这几乎是相同的,但自从规范定义可移植 JNDI 名称以来,它已经过时了。
最佳答案
I want to get the bean off a remote server
是的,您需要指定远程服务器(JNDI服务)运行/监听的IP/端口。
How do I specify the server URL?
您必须设置属性:java.naming.provider.url 并使其可供 InitialConetxt 使用。
这可以在 different ways 中完成:
- 使用 jndi.properties 文件
- 使用系统属性
- 在创建新实例时传递哈希表中的值 InitialContext 对象。
此属性以及实例化 InitialConectt 所需的其他属性的具体值取决于供应商。 JBoss 的一个例子是:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://yourServer:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
请记住,如果您不指定 URL,则无法从远程服务器获取 EJB 的 stub 。 我所说的“远程”是指客户端和服务器运行在不同的 JVM 中。
关于java - 如何指定从中获取 EJB 的服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937514/