根据java ee TutorialEJB
,可以通过以下方式访问jndi
:
java:global[/application name]/module name/enterprise bean name[/interface name]
我正在使用Jboss
应用程序服务器,当我尝试访问实现 na 接口的EJB
命名时:FirstBean
CustomerData
bean = (CustomerData) context.lookup("java:global/EJBTest/FirstBean/CustomerData");
它抛出一个异常:
Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
如果我添加该行:
properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
它抛出另一个异常:
No provider URL configured for connection
我已经实现使用Jboss
规范访问它:
bean = (CustomerData) context.lookup("ejb:/EJBTest//FirstBean!com.al.ejbtest.CustomerData");
如何使用标准的 java ee 规范访问它,特别是只使用斜杠而不是感叹号?是否需要设置任何环境变量?