Настройка ресурсов для развертывания GlassFish2.x Cargo
Я пытаюсь заставить интеграционное тестирование работать для проекта GlassFish 2.x, используя Maven2 и Cargo. Наконец, Cargo пытается развернуть EAR, но он не запускается, потому что источник данных не настроен. Приложение также зависит от нескольких очередей JMS и фабрики соединений - как мне их добавить?
Плагин Cargo Glassfish 2.x говорит, что существующие конфигурации не поддерживаются, поэтому я не могу этого сделать.
Использование maven-glassfish-plugin является опцией, но мы также запускаем OC4J, поэтому было бы предпочтительным решение Cargo.
редактирование: ресурсы: 1 пул соединений JDBC, 1 ресурс JDBC, 4 очереди JMS, 2 фабрики соединений JMS и настраиваемая область безопасности (необязательное дерево Pear). Область нуждается в записи в файле login.conf, например:
myRealm {
uk.co.mycom.MyGlassFishLoginModule required;
};
1 ответ
Я не уверен (я никогда не использовал это), но IIRC, вы должны иметь возможность поместить свою конфигурацию источника данных в sun-resources.xml
файл и упаковать его под META-INF/sun-resources.xml
в вашем EAR и GlassFish должен создавать ресурсы во время развертывания.
Вот пример sun-resources.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "sun-resources_1_3.dtd">
<resources>
<jdbc-connection-pool name="SPECjPool" steady-pool-size="100"
max-pool-size="150" max-wait-time-in-millis="60000"
pool-resize-quantity="2" idle-timeout-in-seconds="300"
is-isolation-level-guaranteed="true"
is-connection-validation-required="false"
connection-validation-method="auto-commit"
fail-all-connections="false"
datasource-classname="oracle.jdbc.pool.OracleDataSource">
<property name="URL"
value="jdbc:oracle:thin:@iasperfsol12:1521:specdb"/>
<property name="User" value="spec"/>
<property name="Password" value="spec"/>
<property name="MaxStatements" value="200"/>
<property name="ImplicitCachingEnabled" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" pool-name="SPECjPool"
jndi-name="jdbc/SPECjDB"/>
</resources>
Попробуйте.
Ресурсы
Спасибо, что сработало. Источник данных, кажется, все в порядке, и приложение развернуто. Однако из документа, который вы связали, я не вижу, как добавить другие вещи, которые мне нужны (отредактировал более подробно в моем вопросе об этом). Это решение также означает, что мне придется (использовать профили для?) Строить EAR по-разному для ИТ, что несовершенно.
Я почему-то упустил, что вы хотите создать другие ресурсы, кроме источников данных, и я видел несколько потоков, сообщающих, что предлагаемый подход не будет работать с GlassFish v2 для любых ресурсов (например, ресурсов JMS). Виноват.
Итак, учитывая текущее состояние, ваши варианты (IMO):
- внести свой вклад в Cargo, чтобы обеспечить "существующую" реализацию конфигурации для GlassFish v2
- используйте плагин maven-glassfish-как вы предложили
У меня нет лучших предложений.