通过jndi查找访问EJB

时间:2013-11-01 13:03:07

标签: java-ee jboss ejb

根据java ee Tutorial,我可以通过EJB访问jndi

java:global[/application name]/module name/enterprise bean name[/interface name]

我正在使用Jboss应用服务器,当我尝试访问EJB名为FirstBean的{​​{1}}实现na接口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规范来实现它,特别是只使用斜杠而不是使用感叹号?是否需要设置任何环境变量?

1 个答案:

答案 0 :(得分:0)

另外试试这个:

properties.put(javax.naming.Context.PROVIDER_URL, "jnp://127.0.0.1:1099");