Je suis en train de convertir un projet multi-module wildfly-essaim. Cependant, je n'ai aucune idée de comment le configurer correctement.Module multi projet Maven avec wildfly-essaim-plugin
Quand je lance mvn wildfly-swarm:run
à partir du répertoire de base, il démarre le serveur et une erreur dit qu'il ne trouve pas mon unité de persistance. persistence.xml
est dans le module DBlayer
donc cela a du sens.
J'ai essayé de l'exécuter à partir du répertoire racine, mais il dit ne se définit pas l'essaim de plug-in. J'ai donc essayé de définir le plugin dans le pom.xml root
au lieu du module pom.xml core
, mais le -swarm.jar
ne peut pas être créé.
Alors, comment suis-je censé le mettre en place?
Ceci est mon pom.xml racine
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>xxx</groupId>
<artifactId>x</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<version.wildfly.swarm>1.0.0.Final</version.wildfly.swarm>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<failOnMissingWebXml>false</failOnMissingWebXml>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>bom</artifactId>
<version>${version.wildfly.swarm}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>backgroundServices</module>
<module>core</module>
<module>DBLayer</module>
<module>userArea</module>
</modules>
<dependencies>
<!-- Java EE 7 dependency -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- Wildfly Swarm Fractions -->
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>cdi</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>jpa-mysql</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>jsf</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>keycloak</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>logging</artifactId>
</dependency>
</dependencies>
</project>
J'ajouté à core.xml:
<build>
<plugins>
<plugin>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-plugin</artifactId>
<version>${version.wildfly.swarm}</version>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
noyau pom:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xxx</groupId>
<artifactId>x</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>core</artifactId>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-plugin</artifactId>
<version>${version.wildfly.swarm}</version>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>xxx</groupId>
<artifactId>DBLayer</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>xxx</groupId>
<artifactId>backgroundServices</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
dblayer pom:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>xxx</groupId>
<artifactId>x</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>DBLayer</artifactId>
</project>
Je n'ai pas précisé de méthode principale. Je viens ai un persistence.xml dans dblayer sous:
dblayer/src/main/resources/META-INF
Je suppose donc un peu cet essaim prend soin de définir automatiquement le pilote et la source de données. Ce que je veux dire, c'est que dans wildfly full, vous devez définir le pilote et la source de données dans standalone.xml. Ici, je n'ai rien fait de tout cela, alors c'est peut-être le problème. Cependant, dans leur exemple, ils ne le font pas non plus. https://github.com/wildfly-swarm/wildfly-swarm-examples/blob/master/jpa/jpa-war/src/main/resources/META-INF/persistence.xml
Voici mon unité de persistance:
<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="my-pu" transaction-type="JTA">
<jta-data-source>java:/walbangDbDS</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>
<properties>
<!--<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>-->
<!--<property name="javax.persistence.sql-load-script-source" value="sql_scripts/loading_script.sql"/>-->
<property name="hibernate.enable_lazy_load_no_trans" value="true"/>
</properties>
</persistence-unit>
</persistence>
Je n'ai pas assez lu la pile, mon mauvais qui ne l'a pas fait. mais je suis sur quelque chose que je pense – Ced
@Ced La source de données est-elle correctement créée dans 'standalone.xml'? Avez-vous un 'faces-config.xml' (je vois que vous utilisez la dépendance JSF)? Au moins, avec une configuration minimale, la suppression de 'jta-data-source',' exclude-unlisted-classes' et 'shared-cache-mode' dans' persistence.xml' fait que le fichier WAR démarre correctement. – Tunaki
Non, je n'ai pas mis de fichier standalone.xml n'importe où donc mon mot de passe et l'utilisateur pour accéder à mysql n'est défini nulle part, pas plus que ma source de données (ni dans le doc/examples). Autant que je comprenne ce n'est pas possible de faire avec un fichier de guerre parce qu'il utilise le dataSource ExampleDS par défaut. Donc j'essaye maintenant de le déployer comme un .jar mais je pense qu'il échoue la découverte automatique des fractions (jsf et telle) ainsi il semble qu'il ait besoin d'installation lourde juste pour définir une source de données. – Ced