2012-09-27 86 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