2015-02-09 4 views
0

Я посреди портирования своего приложения от Glassfish до Wildfly 8.1. Приложение представляет собой проект maven-ejb, который зависит от проекта maven -java Application, оба из которых упакованы в jar-файл при компиляции.Wildfly 8.1, - не распознает мои зависимости - но Glassfish делает

Это проект maven (версия mvn 3.0.5), Java 1.7, и он написан в Netbeans 8.0.2.

Я создал EJB-модуль, имя моего развертываемого файла - ServerApp-ejb.jar. Этот проект имеет @ Startup-bean и делает чтение из базы данных.

Модуль EJB основан на моем модуле «Domain-service», который представляет собой банку -> DomainService-2.0-SNAPSHOT.jar. Этот проект содержит мои «entites».

Когда я раскрываю мой мой EJB-app.jar в Glassfish:

Я могу видеть, что Glassfish использовать DomainService-2,0-SNAPSHOT.jar, который находится в моем .m2-каталоге.

Нажатие на вкладку Glassfish 'общего' Я вижу следующее:

'Библиотеки'> /home/ingo/.m2/repository/se/server/tutorial/web/DomainService/2.0-SNAPSHOT/ DomainService-2.0-SNAPSHOT.jar - может показаться странным, что Glassfish управляет такими зависимостями, как это, но это так, как это делают стеклянные рыбы.

Я понимаю, что классная загрузка выполняется по-разному в Wildfly, чем в Glassfish.

Я видел некоторые рекомендации относительно военных файлов и ушных файлов.

Мой EJB имеет следующие строки в моем pom.xml

se.nrm.mediaserver

ServerApp-EJB

1,0-ПАНОРАМА

EJB

И следующий Зависимости:

<dependencies> 

    <dependency> 

     <groupId>javax</groupId> 

     <artifactId>javaee-api</artifactId> 

     <version>6.0</version> 

     <scope>provided</scope> 

    </dependency> 

    <dependency> 

     <groupId>se.server.tutorial.web</groupId> 

     <artifactId>DomainService</artifactId> 

     <version>2.0-SNAPSHOT</version> 

     <type>jar</type> 

    </dependency> 

    <dependency> 

     <groupId>junit</groupId> 

     <artifactId>junit</artifactId> 

     <version>${junit.version}</version> 

     <scope>test</scope> 

    </dependency> 

    <dependency> 

     <groupId>log4j</groupId> 

     <artifactId>log4j</artifactId> 

     <version>${log4j.version}</version> 

     <type>jar</type> 

    </dependency> 

</dependencies> 

Единственный файл в указанном выше списке зависимостей, который не найден, является моим собственным.

Может ли кто-нибудь посоветовать мне правильную вещь, я бы предпочел не менять свой стиль упаковки ejb.

С уважением, ИНГО

ответ

0

Wildfly использует механизм загрузки классов на основе концепции модулей. Эти модули должны быть определены, а зависимость объявлена ​​либо в файле standalone.xml, либо в определенном jboss-deployment-structure.xml в вашей папке META-INF/WEB-INF, а {user.home} /. M2/не является путей jboss-модулей.

Тем не менее, развертывание деклараций интерфейса как модуля в wildfly не похоже на логическую идею.

Создайте приложение-deployment.ear и добавьте файл applcation-ejb.jar в качестве зависимости от него, и это будет переносимо для серверов приложений, стеклянной рыбы, weblogic, wildfly.

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