Как обратиться к встроенному адаптеру ресурсов JCA
Вопрос
Для нашего текущего проекта J2EE, основанного на JBoss, нам необходимо взаимодействовать с удаленной системой, используя компоненты, управляемые сообщениями, и адаптер ресурсов JCA, предоставляемый в виде файла RAR третьей стороной.Я хотел бы упаковать и развернуть весь проект в виде файла EAR на нашем сервере JBoss.Наиболее примечательно, что файл RAR должен быть встроен в файл EAR и не развертываться глобально.
Пока все это работает нормально, но я не особенно доволен способом ссылки на файл RAR.jboss.xml Например, файл, упакованный с MDB, в настоящее время выглядит следующим образом:
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>testBean1</ejb-name>
<resource-adapter-name>test1.ear#thirdparty-1.0.rar</resource-adapter-name>
</message-driven>
</enterprise-beans>
</jboss>
Хотя в целом это работает нормально, оно сломается, когда файл EAR будет переименован в "test2.ear".Есть ли способ ссылаться на встроенный RAR-файл без жесткого кодирования имени содержащего его архива?
Редактировать: Прошло почти два месяца, а я все еще не нашел реального ответа на этот вопрос.Поспрашивая вокруг, я получил только эти два полезных предложения:"Используйте свойства Maven и фильтрацию" и "Не включайте RAR в EAR". я сильно подозреваю, что в настоящее время нет способа правильно обработать это в JBoss.Так что я откажусь от этого и просто приму единственный ответ, который я получил здесь.
Решение
используете ли вы maven для сборки?Если это так, вы можете установить свойство maven, которое дает имя файлу ear, и использовать это имя для задания значений в файлах ресурсов с помощью заполнителя
например, xxx
затем используйте
${ear.name}.ear#thirdparty-1.0.rar
просто убедитесь, что вы установили ресурсы, которые будут содержать заполнители
что - то вроде этого:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>