我在 JBoss 6.0 AS 的本地主机上部署了一个应用程序。此应用程序有一个名为 ExampleEJB 的远程 EJB bean。现在我正在尝试编写一个使用 ExampleEJB 的简单客户端应用程序。此客户端应用程序不会部署在任何应用程序服务器上。这个想法是编写一个简单的 Java SE 客户端程序。我写了以下试图执行查找:
Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,"localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ic = new InitialContext(env);
在这一点上,我尝试了两种方法第一种是执行直接查找,如 Java EE 6 教程 ( http://docs.oracle.com/javaee/6/tutorial/doc/gipjf.html ) 中的示例:
ExampleEJB exampleEJB = (ExampleEJB) ic.lookup("java:global/myApp/ExampleEJB");
第二次尝试是尝试获取 JNDI 上下文环境,然后从该环境中获取所需的 bean:
Context envContext = (Context)ic.lookup("java:/comp/env");
envContext.lookup(...)
问题是我收到以下异常:“javax.naming.NameNotFoundException: global not bound”和“javax.naming.NameNotFoundException: comp not bound”。我无法根据需要执行查找。
有人有线索吗?