Следующим в моем списке действий было заставить эту установку работать с последней версией WebLogic 12c.
Начиная
Следуйте инструкциям в первых двух постах. Есть только несколько вещей, которые вы должны изменить, чтобы это работало. Очевидно, вам нужен WebLogic 12c. Grep копию со страницы загрузки OTN . Прочтите и примите лицензию и загрузите либо установщик ZIP, либо полнофункциональный установщик для вашей ОС. Арун Гупта имеет хороший пост о начале работы с установщиком ZIP . Это в основном о загрузке, распаковке, настройке, создании вашего домена. Предположим, у вас есть домен1 на месте. Обязательно скопируйте mysql-connector-java-5.1.6-bin.jar в domain1 / lib и запустите сервер, запустив startWebLogic.cmd / .sh в корневом каталоге domain1. Далее необходимо настроить соответствующий пул соединений. Вы также можете сделать это, используя магию WLST или новый плагин WebLogic Maven, но я предполагаю, что вы делаете это через консоль администратора. Перейдите в раздел Домен> Сервисы> Источники данных и создайте MySQL Datasource AuditLog с именем jndi «jdbc / auditlog». Убедитесь, что сервер работает во время выполнения ваших тестов!
Изменение образца веб-проекта
Теперь откройте pom.xml проекта sampleweb и удалите зависимость glassfish-embedded-all вместе с arquillian-glassfish-embedded-3.1 и javaee-api. Теперь добавьте контейнер wls-remote-12.1 и зависимости jboss-javaee-6.0:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
< dependency > < groupId >org.jboss.arquillian.container</ groupId > < artifactId >arquillian-wls-remote-12.1</ artifactId > < version >1.0.0.Alpha2</ version > < scope >test</ scope > </ dependency > < dependency > < groupId >org.jboss.spec</ groupId > < artifactId >jboss-javaee-6.0</ artifactId > < version >1.0.0.Final</ version > < type >pom</ type > < scope >provided</ scope > </ dependency > |
Теперь откройте свой дескриптор arquillian.xml и измените настройки контейнера, чтобы использовать контейнер wls:
1
2
3
4
5
6
7
8
|
lt;container qualifier="wls" default="true"> < configuration > < property name = "adminUrl" >t3://localhost:7001</ property > < property name = "adminUserName" >weblogic1</ property > < property name = "adminPassword" >weblogic1</ property > < property name = "target" >AdminServer</ property > < property name = "wlsHome" >X:\path\to\wlserver\</ property > </ configuration > |
Убедитесь, что используете правильный целевой сервер и укажите правильный wlsHome. Щелкните правой кнопкой мыши AuditRepositoryServiceTest в NetBeans и запустите «Тестовый файл». Вы увидите, что удаленный контейнер выполняет некоторую работу:
22.01.2012 22:40:34 развертывание org.jboss.arquillian.container.wls.WebLogicDeployerClient
ИНФОРМАЦИЯ: Запуск weblogic.Deployer для развертывания тестового артефакта.
22.01.2012 22:40:46 org.jboss.arquillian.container.wls.WebLogicDeployerClient forkWebLogicDeployer
ИНФОРМАЦИЯ: weblogic.Deployer, похоже, успешно завершен.
22.01.2012 22:40:53 org.jboss.arquillian.container.wls.WebLogicDeployerClient undeploy
ИНФОРМАЦИЯ: Запуск weblogic.Deployer для удаления тестового артефакта.
22.01.2012 22:41:00 org.jboss.arquillian.container.wls.WebLogicDeployerClient forkWebLogicDeployer
ИНФОРМАЦИЯ: weblogic.Deployer, похоже, успешно завершен.
И тест идет зеленый! Если вы посмотрите на журнал домена, то увидите, что модуль test.war успешно развернут и не развернут.
Замечания и мысли
Глядя на то, что мы имеем с WebLogic 12c (особенно с новым плагином maven), все это кажется очень ручным. Что бы разработчик WebLogic сделал до этого в проекте на основе Maven? Он бы поместил файл weblogic.jar в свой локальный репозиторий и использовал бы его вместо любых зависимостей jboss-javaee-6.0 или javaee-api. Если вы попробуете это с контейнером Arquillian wls, вы увидите странные исключения, подобные следующим:
Класс загрузки: javax.transaction.SystemException
Исключение в потоке «основной» java.lang.ClassFormatError: Отсутствует код
атрибут в методе, который не является родным или абстрактным в файле класса
javax / транзакции / SystemException
Это в основном потому, что только wlfullclient.jar содержит все необходимые классы для удаленного управления через JMX. Волшебный weblogic.jar имеет несколько дополнительных записей пути к классам в своем манифесте, которые не могут быть разрешены, если вы поместите его в свой локальный репозиторий m2. Таким образом, у вас просто осталось два варианта. Используйте wlfullclient.jar ( посмотрите, как его собрать в документах ) для тестирования и weblogic.jar для своей разработки или придерживайтесь зависимости jboss-javaee-6.0 для разработки и тестирования (предоставляется область действия). Оба являются действительными альтернативами. Как вы можете видеть, контейнер WebLogic все еще не документирован в документации Arquillian . Вы можете найти более подробную документацию по проекту wls-container на github.
Загрузите проект simpleweb-wls.zip в качестве справки, чтобы начать работу.
Спасибо Vineet и Aslak за помощь!
Справка: Arquillian с NetBeans, WebLogic 12c, JPA и источником данных MySQL от нашего партнера по JCG Маркуса Эйзела (Markus Eisele) из блога Enterprise Software Development с Java .