2013-09-26 2 views
2

Я пытаюсь выяснить, как развернуть активацию адаптера ресурса в JBoss 7. В принципе, я хочу иметь возможность упаковывать и развертывать полное приложение без необходимости изменять конфигурацию базового сервера, частично потому, что я хочу загрузить тестирование с использованием Arquillian, но также и потому, что я хочу иметь возможность развертывать свои пакеты в среде, где у меня может не быть возможности изменять конфигурацию базового сервера.Как я могу развернуть активацию адаптера ресурса в JBoss 7?

Вот, где я сейчас. Я создал EAR, который содержит active-mq rar (который также настроен в application.xml). Это ухо само по себе прекрасно строится и развертывается с использованием плагина уха maven и jboss-as-maven-plugin.

Однако для того, чтобы активировать RAR, единственный способ, которым я был в состоянии выяснить, является взломать файлу RAR себя и добавить ironjacamar.xml в META-INF каталог RAR в. Но для этого мне пришлось взломать рэра в моем maven-репо, который я действительно не хочу делать.

Я попытался получить Maven, чтобы добавить ironjacamar.xml во время фазы упаковки моего Maven ПОМ, но это немного рубить, как хорошо, и я не мог заставить его работать в любом случае. (Примечание для себя: проверить Deployment Overlays)

Я также думал о создании сценариев добавления соединительного завода с использованием JBoss-кли, но документы четко заявить, что является для создания заводов для встроенных шершней-MQ-сервер который не является моей целью, и замена стандартного JMS-реализации на сервере требует некоторой крупной операции в конфигурации сервера.

Я смотрел, хотя все QUICKSTART проектов и наблюдал все виды конструкций развертываются хотя -jms.xml и -ds.xml файлов, включенными в пакете, но они также специфичны для Hornet-мэка и JDBC соответственно. (Я надеялся, что развертыватель может поддерживать -rar.xml или тому подобное).

Единственный способ, которым я могу думать, и я не знаю, если это поддерживается, является определение подсистемы развертывания в в моем пакете. Что-то подобное существует ?

===== ===== UPDATE

Я попытался добавить обновления кли наложения (как я бы с помощью Maven JBoss в качестве плагина), но это не имело никакого эффекта.

deployment-overlay add --name=rarActivation --content=META-INF/ironjacamar.xml=\..\container\src\main\resources\ironjacamar.xml --deployments=activemq-rar.rar --redeploy-affected 

ответ

4

Ну, в отсутствие каких-либо других ответов это решение, с которым я столкнулся. Это немного взломанный, но он работал безупречно с Active MQ и WebSphere MQ. Предпосылка заключается в том, что я развертываю 2 разных RAR на систему JMS, к которой я хочу подключиться. Один из них - нетронутый файл xxx.rar, который я извлекаю из репозитория Maven. Второй - это мой «конфигурационный RAR», который содержит копию ra.xml из оригинального rar, а затем файл конфигурации ironjacamar.xml. Оба они помещаются в папку конфигурации rar's META-INF.

Для каждого данного поставщика RAR файл ironjacamar.xml могут быть получены с использованием rar-info.sh, который включен в 1.1 скачать Iron Jacamar.Процедура описана в разделе 10.1. Resource adapter information tool int user guide.

Использование ActiveMQ 5.8.0 в качестве примера:

Сгенерированный ironjacamar.xml извлекается из полного выходного сигнала rar-info.sh выход. В файле, он называется:

Deployment Descriptor: 
---------------------- 

Извлеченный часть файла, который станет ironjacamar.xml начинается после этого заголовка и заканчивается </ресурсов-адаптеров>.

следующие правки должны применяться:

  1. Удалите открывающие <resource-adapters> и <resource-adapter> теги и заменить с <ironjacamar.xml> открывающего тега.
  2. Снимите отверстие <archive>.
  3. Снимите закрывающие метки </resource-adapter> и </resource-adapters> и замените их закрывающим тегом </ironjacamar.xml>.

Существуют примеры определений для фабрик соединений для каждого типа соединения (соединение, очередь и тема), которые включают имя JNDI, в котором JBoss свяжет фабрики. Отредактируйте их по своему усмотрению. Мне понадобилась фабрика Connection, поэтому я редактировал имя JNDI и удалил два других определения.

Существуют примеры определения целевых ссылок (которые практически не нужны для ActiveMQ, но это полезно для других). Один для очереди, один для темы. Отредактируйте их по своему усмотрению.

The Maven зависимость:

<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-rar</artifactId> 
    <version>5.8.0</version> 
    <type>rar</type> 
</dependency> 

разворачиваемой EAR выглядит следующим образом:

sample.ear 
    META-INF 
     application.xml 
    activemq-rar.rar (file) 
    activemq-config.rar (directory) 
     ra.xml (extracted from activemq-rar.rar or generated) 
     ironjacamar.xml (generated, then edited) 

На самом деле, ra.xml можно извлечь из "реальной" RAR, но также генерируется в файле выходного файла rar-info.sh rar-info.sh, так что возьмите его.

application.ear будет выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> 
    <display-name>JBoss7Sample Ear</display-name> 
    <!-- Sample for WebSphereMQ 
    <module><connector>wmq.jmsra.rar</connector></module> 
    <module><connector>wmq-config.rar</connector></module> 
    --> 
    <module><connector>activemq-rar.rar</connector></module> 
    <module><connector>amq-config.rar</connector></module> 
</application> 

Чтобы еще раз подчеркнуть, это (на самом деле довольно просто) работать вокруг очень важно для меня, потому что любая процедура развертывания, которая начинается с «Редактирование серверный файл называется ..... или «В консоли управления .....» является не стартером в среде, в которой я настроен. Мне не нужно иметь доступ к ванильному JBoss 7 (EAP 6.1) внутренние каталоги или доступ к консоли, как можно было бы развернуть в конце сборки Jenkins или тому подобное. (Не говоря уже который, редактируя файлы для добавления развертывания, сам по себе не является стартером).

Это обходное решение и другие подробности можно найти более подробно в этом документе github project, который был специально настроен для обмена некоторыми рабочими конфигурациями, которые я нашел, в противном случае довольно трудно найти.

P.S. Поскольку это единственный предложенный ответ, я даю правильный ответ самому себе, но я отдам его за лучший ответ.

Смежные вопросы