Как правильно использовать Wildfly 10 с Hibernate и MongoDB?
Я новичок в этом, провел много исследований и до сих пор не могу разработать рабочую среду Wildfly / Hibernate / MongoDB. Вот в основном сделал так далеко:
- Прочтите это руководство
- Скачать Wildfly 10
- Загрузите архив модулей Hibernate OGM 5.1.0.Final и ORM 5.1.4
- Извлечение модулей в wildfly/ модули
- Скачать / установить MongoDB (я попробовал 2 версии)
- через Brew на Mac
- через Ubuntu в ВМ
- Создать новый веб-проект Maven в Netbeans
Следующим шагом является редактирование pom.xml, jboss-deploy-structure.xml, persistence.xml. И это точка, где начинается проблема. Я пробовал разные записи и получаю разные ошибки. Прямо сейчас моя конфигурация выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.hibernate.ogm" slot="5.1" services="export" />
<module name="org.hibernate.ogm.mongodb" slot="5.1" services="export" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Я видел разные версии этого файла, иногда с slot="main", иногда с services = "import".
Persitence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="comic-PU" transaction-type="JTA">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="jboss.as.jpa.providerModule" value="org.hibernate:5.1"/>
<property name="hibernate.ogm.datastore.provider" value="mongodb"/>
<property name="hibernate.ogm.datastore.database" value="comicDB"/>
<property name="hibernate.ogm.datastore.host" value="localhost"/>
<property name="hibernate.ogm.datastore.port" value="27017"/>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
</properties>
Я уверен, что здесь что-то не так. При развертывании проекта Wildfly пытается прочитать файл persistence.xml, затем на мгновение застревает и:
20:58:33,255 INFO [org.jboss.as.jpa] (MSC service thread 1-6) WFLYJPA0002: Read persistence.xml for comic-PU
21:03:32,767 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0348: Timeout after [300] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'deploy' at address '[("deployment" => "MYAPP.war")]'
21:03:32,772 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0022: Deploy of deployment "ComicFeeder-1.0.war" was rolled back with no failure message
Я добавил, что Pom.xml в основном генерируется автоматически
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-core</artifactId>
<version>5.1.0.Final</version>
</dependency>
<archive>
<manifestEntries>
<mode>development</mode>
<url>${project.url}</url>
<Dependencies>org.hibernate.ogm:5.1 services, org.hibernate.ogm.mongodb:5.1 services</Dependencies>
</manifestEntries>
</archive>
Требуется ли запись манифеста?
Ошибки, которые я получил:
- Wildfly: org.hibernate.search.engine 5.6.1. Финал не найден
- в wildfly/modules/org/hibernate/search/engine имя модуля называется "5.6.1.Final-orm51" -> переименовано в 5.6.1.Final, отредактируйте запись в 5.6.1.Final/modules.xml
- Wildfly запускается без этой ошибки
- Это похоже на ошибку для меня
Где моя ошибка? Каков ваш "рабочий процесс", когда вы начинаете новый проект с hibernate, wildfly и mongodb? Будет ли проще использовать Glassfish или любой другой сервер? Некоторые учебники, которые я нашел, устарели или просто не работают (для меня).