Java jboss 7-获取会话bean的模块名

Java jboss 7-获取会话bean的模块名,java,ejb,jboss7.x,jndi,Java,Ejb,Jboss7.x,Jndi,JBoss7 说明 为了获得对某个组件(本例中的会话bean)的引用,我们可以使用lookup函数。如果组件不在同一个模块中,我们必须指定模块名称 例如: String moduleName=“exampleModuleName”; InitialContext=新的InitialContext(); IHelloLocal helloBean=(IHelloLocal)context.lookup(“java:app/”+moduleName+“/”+helloBean.class.getSi

JBoss7

说明

为了获得对某个组件(本例中的会话bean)的引用,我们可以使用lookup函数。如果组件不在同一个模块中,我们必须指定模块名称

例如:

String moduleName=“exampleModuleName”;
InitialContext=新的InitialContext();
IHelloLocal helloBean=(IHelloLocal)context.lookup(“java:app/”+moduleName+“/”+helloBean.class.getSimpleName()+”!“+IHelloLocal.class.getName());
这里的问题是硬编码模块名

当模块名称始终相同时,这是可以接受的。但它可以随着时间而改变。例如,当使用maven构建模块时,默认jar名称包含版本。以jar文件的名称编写版本是可以的,但这迫使我们在代码中找到模块名硬编码的每个地方。这是一件可怕的事情

问题


如何处理这种情况?

在ejb-jar.xml中使用
来使用静态模块名,而不是将其默认为存档库名称。

maven-ear插件支持一个命名的
无版本的ejb
,它从ear中的ejb jar中删除该版本