从 ejb-jar.xml 给出这个条目
<message-driven id="my_test_mdb ">
<description>Some description</description>
<display-name>MyTest</display-name>
<ejb-name>MyTestEJB</ejb-name>
<ejb-class>some.path.to.TestMessageBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
有没有办法在运行时访问为 my_test_mdb 定义的值。我主要对获取 ejb-name 值感兴趣,但是对于 display-name 等其他问题应该问同样的问题。
我知道我可以添加一些像下面这样的环境条目,但这在我看来像是一种重复和容易出错的事情。
<message-driven>
...
<ejb-name>MyTestEJB</ejb-name>
...
<env-entry>
<env-entry-name>ejbName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>MyTestEJB</env-entry-value>
</env-entry>
</message-driven>
我试图放置一个断点并评估 new InitialContext().lookup("java:comp/env") 然后遍历 list 和 listBindings 但这只会给我带来 env-entry 部分而不是我想要的。
这是非常令人沮丧的,因为在运行时我可以检查一些元素并且清楚地能够看到我所追求的
javaNameSpaceImpl:{appName=someModule,_moduleName=someModuleEJB,_componentName=MyTestEJB,_bootstrapAddress=rir:…etc}
关于如何实现这一点的任何想法?
先感谢您。