[size=large][color=blue]JBoss下JNDI名的转换[/color][/size]
随着JBoss的启动,很多资源会以JNDI的形式发布出来,比如数据源,EJB等等。对于这些资源的JNDI名,有些是可以修改的,比如数据源;但是有一些则不能修改,比如UserTransaction,它的名字是写死在JBoss的代码里的。
通常,我们无需修改默认的JNDI名,但是,对于一些升级或移植的项目,往往希望沿用以前的JNDI名,尽量不修改代码。这个时候,就可以使用JBoss提供的别名服务(NamingAlias)来完成新旧JNDI名的映射。配置方法如下:
以UserTransaction为例,将上面的配置追加到jboss-service.xml,那么,在程序中就可以使用“javax.transaction.UserTransaction”这个名字检索出原本应该使用“ UserTransaction”才能检索出的资源。
随着JBoss的启动,很多资源会以JNDI的形式发布出来,比如数据源,EJB等等。对于这些资源的JNDI名,有些是可以修改的,比如数据源;但是有一些则不能修改,比如UserTransaction,它的名字是写死在JBoss的代码里的。
通常,我们无需修改默认的JNDI名,但是,对于一些升级或移植的项目,往往希望沿用以前的JNDI名,尽量不修改代码。这个时候,就可以使用JBoss提供的别名服务(NamingAlias)来完成新旧JNDI名的映射。配置方法如下:
<mbean code="org.jboss.naming.NamingAlias"
name="jboss.mq:Service=NamingAlias,fromName=javax.transaction.UserTransaction">
<attribute name="ToName">UserTransaction</attribute>
<attribute name="FromName">javax.transaction.UserTransaction</attribute>
</mbean>
以UserTransaction为例,将上面的配置追加到jboss-service.xml,那么,在程序中就可以使用“javax.transaction.UserTransaction”这个名字检索出原本应该使用“ UserTransaction”才能检索出的资源。