我有一个内部有一个Web应用程序的EAR。在这个Web应用程序中,我通过JNDI获得了数据源参考。所以我的web.xml中有一个JDBC类型资源引用:
<resource-ref>
<description>TCCC Database</description>
<res-ref-name>jdbc/tccc</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我必须将我的EAR部署到 WebSphere App Server 7.0 ,对于我的资源引用(jdbc / tccc),我必须指定一个JNDI名称,以便将此逻辑名称绑定到该物理位置。数据库资源。
我根据文档在WAS实例上成功设置并配置了JDBC提供程序,数据源和安全设置。使用Web管理控制台,我已经在一些步骤HOST和JNDI上手动部署了我的EAR绑定,以便 ibm-web-bnd.xml 看起来像:
<virtual-host name="default_host"/>
<resource-ref name="jdbc/tccc"
binding-name="jdbc/tccc/oracle "/>
其中“jdbc / tccc / oracle”是我在WAS上配置的数据源的JNDI名称。 一切都很好。
但现在我想通过使用 ws_ant 和适当的任务(如InstallApplication,UninstallApplication等)来完成所有部署。我已经创建了一个包含所需任务的相应build.xml文件,现在可以卸载并安装我的应用。但是如何将app JNDI名称绑定到服务器上的数据源的JNDI名称。使用defaultBindings任务我可以将主机绑定到default_host。我如何用JNDI实现同样的目标。我一直在尝试在defaultBindings任务中设置defaultDataSource参数,但它总是创建具有相同绑定名称值的ibm-web-bnd.xml:
<virtual-host name="default_host"/>
<resource-ref name="jdbc/tccc"
binding-name="jdbc/tccc "/>
Importang事情:我必须在部署期间仅绑定资源引用 ,以便将来绑定到不同的数据源。