Je commence l'introduction avec l'apprentissage de wildfly. J'ai téléchargé la distribution du serveur.
J'essaie maintenant de configurer la source de données mais je vois l'erreur suivante:
Unexpected HTTP response: 500
Request
{
"address" => [
("subsystem" => "datasources"),
("data-source" => "PostgreDataSource")
],
"operation" => "test-connection-in-pool"
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0042: failed to match pool. Check JndiName: Java:jboss/datasources/PostgreDataSource",
"rolled-back" => true
}
Mes pas:
1. Dossier créé wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main
et copiez postgresql-9.0-801.jdbc4.jar
de \.m2\repository\postgresql\postgresql\9.0-801.jdbc4
Là.
2.Created module.xml (à l'intérieur de wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules
):
avec le contenu suivant:
<module xmlns="urn:jboss:module:1.0" name="org.postgres">
<resources>
<resource-root path="postgresql-9.0-801.jdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
standalone.xml
(wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\standalone\configuration
) comme ceci (désolé - je ne sais pas comment copier du xml pour qu'il soit visible pour un autre utilisateur (contenu complet visible ici: http://collabedit.com/psk4a )):Aidez-moi à comprendre ce que je fais de mal?
Problème résolu après le déplacement module.xml
à wildfly-10.0.0.CR2\wildfly-10.0.0.CR2\modules\org\postgres\main
Vous trouverez ci-dessous la configuration du pilote et la création d'une source de données et comment le rendre globalement visible afin que tous les déploiements J2EE puissent accéder au module particulier si nécessaire.
Créez la structure de répertoires comme ci-dessous à l'intérieur des modules dans le répertoire wildfly-8.2.0.Final\modules et placez les fichiers mentionnés et le pot de pilote. Répertoire: wildfly-8.2.0.Final\modules\org\postgresql\main
Fichier: module.xml
<!--<?xml version="1.0" encoding="UTF-8"?>-->
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
<resources>
<resource-root path="postgresql-9.4-1204.jdbc41.jar"/>
</resources>
<dependencies><module name="javax.api"/></dependencies>
</module>
JAR: Pilote PostGreSQL: postgresql-9.4-1204.jdbc41.jar
Remarque: La version du pilote peut être votre choix et veuillez vous assurer de refléter ce nom de version dans le fichier module.xml. Veuillez noter que le nom du pilote = "org.postgresql" mentionné dans le fichier module.xml doit correspondre à la configuration des sources de données dans le fichier standalone.xml.
Remarque: La version du pilote PostGreSQL doit être compatible avec la version Java du système. Dans cet exemple, Java est 1,7 et le pilote PostGreSQL utilisé est postgresql-9.4 -1204.jdbc41.jar.
Les sources de données sont configurées dans le fichier standalone.xml dans la configuration WildFly 8.2.0.Final\standalone \. Comme première étape, configurez la référence du pilote PostGreSQL dans le fichier standalone.xml comme ci-dessous à l'intérieur de la balise
<driver name="postgresql" module="org.postgresql">
<datasource-class>org.postgresql.Driver</datasource-class>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
1. Ajoutez les détails de la source de données:
Veuillez ajouter cette balise intérieure
<datasource jndi-name="Java:/db1" pool-name="db1" enabled="true" use-Java-context="true">
<connection-url>jdbc:postgresql://localhost:5432/dbname</connection-url>
<driver>postgresql</driver>
<security>
<user-name>user_name</user-name>
<password>password</password>
</security>
</datasource>
2. rendre les pilotes publiés globalement visibles en ajoutant à la section
C'est ici:
<global-modules>
<module name="org.postgresql" slot="main"/>
</global-modules>
Remarque: les modules globaux sont un ensemble de modules JBoss qui seront ajoutés en tant que dépendances au module JBoss de chaque Java EE. Ces dépendances permettent Java déploiements EE pour voir les classes exportées par les modules globaux. Voir: https://docs.jboss.org/author/display/WFLY8/Subsystem+configuration
Une fois configuré ci-dessus, veuillez démarrer votre instance WildFly.
Je voudrais dire que j'ai résolu le problème uniquement en utilisant la console d'administration wildfly ( http: // localhost: 9990/console / ). Pas une solution aussi spartiate, mais ça marche. J'ai seulement pointé le pot du pilote JDBC à partir du répertoire externe et après avoir créé une source de données. Pas de xml à la main et pas de modification de la structure du répertoire de wildfly. Pour Java 8 + postgresql 9.5 J'ai utilisé postgresql-42.1.1.jar. J'ai eu des problèmes avant seulement parce que j'ai choisi le mauvais pilote et que le nom de la base de données était incorrect.
Je ne suis pas 100% positif, mais si je vois des liens sur le net, cela peut être dû aux paramètres de pool par défaut. Vous pouvez essayer en ajoutant des paramètres de configuration de pool spécifiques à votre source de données:
<datasource jndi-name="blabla"... >
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>20</max-pool-size>
<prefill>true</prefill>
</pool>
</datasource>
Je base cela sur ce thread stackoverflow: connexion jfb WildFly avec Oracle
où une réponse renvoie à ce fil de discussion du forum JBoss: https://developer.jboss.org/thread/257721
Les paramètres du pool sont d'ailleurs mentionnés dans la documentation de configuration de Wildfly. C'est Wildfly 9, mais je ne peux pas imaginer que les choses aient beaucoup changé dans Wildfly 10: https://docs.jboss.org/author/display/WFLY9/DataSource+configuration