参数化EJB3远程URL

时间:2014-07-02 13:14:16

标签: java java-ee glassfish ejb

我正在将JavaEE5应用程序迁移到JavaEE6。在那个迁移过程中,我们已经改变了一些架构部分,现在我们在服务器中有逻辑,在另一个中有表示,并且通过IIOP RMI远程接口进行通信。

要做到这一点,我必须在我的glassfish-web.xml中定义EJB的JNDI

<ejb-ref> 
    <ejb-ref-name>ejb/Informe</ejb-ref-name> 
    <jndi-name>corbaname:iiop:srvtest:3701#java:global/mycrud/mycrud-dss-ejb/InformeBean!com.myorg.ejb.InformeRemote</jndi-name>
</ejb-ref> 

但是当我在生产环境中部署时,我必须重写为

<ejb-ref> 
    <ejb-ref-name>ejb/Informe</ejb-ref-name> 
    <jndi-name>corbaname:iiop:srvproduction:3701#java:global/mycrud/mycrud-dss-ejb/InformeBean!com.myorg.ejb.InformeRemote</jndi-name>
</ejb-ref> 

我的观点是我有3个环境:

  • 开发
  • 测试
  • 生产

在其中任何一个中,我都有不同的服务器名称来访问JNDI远程接口,并且在我的描述符中进行了硬编码。因此,我必须与maven或蚂蚁打交道来制造不同的耳朵或战争,这取决于环境。

所以我的问题是有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

与使用其他特定于目标的配置文件(例如持久性配置或应用程序属性文件)的情况相同:您为不同的目标环境维护配置文件的不同版本,然后为特定的环境构建版本。 / p>

对于Maven,你会找到一个教程here