對於JBoss,你的代碼看起來應該是這樣的:
Properties properties = new Properties();
properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
properties.put("java.naming.factory.url.pkgs","=org.jboss.naming:org.jnp.interfaces");
properties.put("java.naming.provider.url","localhost:1099");
Context context = new InitialContext(properties);
(EchoBeanRemote) c.lookup("EchoBean/remote");
如果你願意,你可以把JNDI environement設置在jndi.properties
文件(需要在類路徑):
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
,並使用無參構造函數InitialContext
:
Context context = new InitialContext();
(EchoBeanRemote) c.lookup("EchoBean/remote");
這顯然更便攜。
在這兩種情況下,您需要在客戶端的類路徑上使用jbossall-client.jar
。
P.S:您可以檢查全局JNDI名稱你的bean在JNDI查找基於Web的控制檯JMX的註冊的(如果它仍然存在)。