我正在将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或蚂蚁打交道来制造不同的耳朵或战争,这取决于环境。
所以我的问题是有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
与使用其他特定于目标的配置文件(例如持久性配置或应用程序属性文件)的情况相同:您为不同的目标环境维护配置文件的不同版本,然后为特定的环境构建版本。 / p>
对于Maven,你会找到一个教程here。