У меня есть EAR с одним веб-приложением внутри. В этом веб-приложении я получаю ссылку на источник данных через JNDI. Итак, у меня есть ссылка на ресурс типа JDBC в моем файле web.xml:
<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, чтобы привязать это логическое имя к физическому расположению БД ресурс.
Я успешно настроил и сконфигурировал провайдера JDBC, источник данных и параметры безопасности на своем экземпляре WAS в соответствии с документацией. И с помощью консоли веб-администрирования я развернул привязку EAR вручную на каком-то шаге HOST и JNDI, чтобы ibm-web-bnd.xml выглядел так:
<virtual-host name="default_host"/>
<resource-ref name="jdbc/tccc"<br>
binding-name="jdbc/tccc/oracle "/>
Где «jdbc / tccc / oracle» - это имя JNDI для источника данных, который я настроил в WAS.
Все работает нормально.
Но теперь я хочу выполнить все развертывание, просто используя ws_ant и соответствующие задачи, такие как InstallApplication, UninstallApplication и т. Д. Я создал соответствующий файл build.xml с необходимыми задачами и теперь могу удалить и установить свой приложение. Но как я могу привязать JNDI-имя приложения к JNDI-имени источника данных на сервере. Используя задачу defaultBindings, я могу привязать хост к default_host. Как я могу добиться того же с JNDI. Я пытался установить аргумент defaultDataSource в задаче defaultBindings, но он всегда создает файл ibm-web-bnd.xml с тем же значением привязки имени:
<virtual-host name="default_host"/>
<resource-ref name="jdbc/tccc"<br>
binding-name="jdbc/tccc "/>
Важная вещь: мне нужно только привязать ссылку на ресурс во время развертывания , чтобы связать с различными источниками данных в будущем.