2012-09-27 84 views
2

我的web应用程序包含一些2.x有状态和无状态会话ejbs。但与以前的jboss版本(以及其他主要的应用程序服务器)不同,我无法在jboss 7.1.1中指定ejb jndi名称。我通过消除jboss.xml来支持jboss-ejb3.xml,并且以完全配置文件模式启动应用服务器,从而遵循了他们的文档。如何在jboss 7.1.1中设置特定的ejb jndi名称

<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd 
        http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd" 
        version="3.1" 
        impl-version="2.0"> 
    <enterprise-beans> 
     <session> 
     <ejb-name>MyEJB</ejb-name> 
     <jndi-name>MyEJB_JNDI_NAME</jndi-name> 
     </session> 
    </enterprise-beans> 
</jboss:ejb-jar> 

然而,在JBoss中,ejb3.xml的JNDI名称没有深入人心,阻止我设定自己的自定义EJB JNDI名称。有谁知道如何做到这一点?

回答

7

<jndi-name>在JBoss中不再支持AS 7.从this JIRA

在AS7我们不再支持绑定到EJB的自定义JNDI名称。因此,这些bean始终绑定到规定的java:global,java:app 和java:module命名空间。会话bean 的<jndi-name>不再受支持。

+0

这种方法是为了符合j2ee 6规范而实现的吗?另外,因为jboss-ejb3.xml架构仍然支持节点,只要它符合您指定的三个前缀,它是在那里指定一个jndi名称? – user1056027

+0

你在哪里看到它?如果您查看[ejb-jar_3_1.xsd](http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd),则“”不存在,但他们确实提到了“”对会话bean的这种解释:“_...可用于提供特定于供应商的部署信息,例如会话bean的远程家庭/业务接口的物理jndi-name。该元素不需要被所有实现支持任何对这个元素的使用都是不可移植的“。它既不在[jboss-ejb3-2_0.xsd](http://goo.gl/CNSy0) – betomontejo

+1

中,你是正确的,在jboss-ejb3.xml中没有。所以我选择在jboss的standalone.xml中使用以下方法: user1056027