当我与标准@Stateless,@Remote注解来我JBoss AS中部署一个典型的EJB3豆7.1.1我看到下面的JNDI绑定上服务器控制台输出:JBoss AS中7.1.1 JNDI绑定
22:31:43,209 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor]
(MSC service thread 1-2) JNDI bindings for session bean named HelloEJB3Bean
in deployment unit deployment "hello.jar" are as follows:
java:global/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:app/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:module/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:jboss/exported/hello/HelloEJB3Bean!archetypesEjb3.IHelloEJB3
java:global/hello/HelloEJB3Bean
java:app/hello/HelloEJB3Bean
java:module/HelloEJB3Bean
但是,我然后找到并使用JNDI ST(使用改编自the JBoss AS 7.1.1 quickstart tutorials代码)从一个独立的Java类叫豆以下类型的环:
String jndiName = "ejb:" + appName + "/" + moduleName + "/" + distinctName
+ "/" + beanName + "!" + viewClassName
+ (stateful?"?stateful":"");
(它不属于上述名称空间/绑定之一)。
- 为什么会提供如此多的JNDI绑定,并且如果我使用其中一个或另一个,会产生多大的差别?
- 有没有标准的路要走,例如也许使用EJB:/命名空间(因为这就是出现在上面给出的快速入门教程)
- 为什么EJB:/结合(因为这显然存在就是我曾经跟我的豆)未报告在JBoss AS 7.1.1输出中?