JBoss 7 jndi战争中ejb包的名字

时间:2014-05-01 20:54:04

标签: java-ee jboss ejb jndi

有没有人知道如何修改在JBoss 7.2(EAP 6.1)下的战争中部署的ejb的全局jndi名称的“模块”组件?

根据规范,模块名称与基本战争名称相同,在我的情况下包括版本号。

以下是来自oracle的规范:

java:global/[<application-name>]/<module-name>/<bean-name>

就我而言,它是:

java:/global/mywar-1.0/MyService

我想要的是:

java:/global/mywar/MyService

我知道我可以在部署之前修改war的名称,但是更喜欢通过配置文件显式命名模块。我试图使用ejb-jar.xml模块名称,但它没有效果。

2 个答案:

答案 0 :(得分:6)

解决:我最终必须为web.xml的后续3.0规范包含/更新xsd / namespace。这允许&#34;模块名称&#34;要在web.xml中指定的元素,该元素将在创建jndi名称时使用。测试并使用JBoss EAP 6.1。

这里是web.xml标头和module-name元素:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     id="WebApp_ID" version="3.0">

     <module-name>mywar</module-name>

答案 1 :(得分:0)

您需要做的是创建一个jboss-web.xml并将其放在web.xml旁边的META-INF中。把它放在里面:

<jboss-web>
    <context-root>mywar</context-root>
</jboss-web>

干杯!

如果将其打包在EAR中,您可以使用application.xml来执行此操作。