web-dev-qa-db-fra.com

Comment configurer la source de données dans Wildfly 10?

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> 
  1. Modifié 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?

enter image description here

12
gstackoverflow

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

3
gstackoverflow

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.

1. Configuration du pilote PostGreSQL

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.

2. Configuration des sources de données

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.

5
Ajay Kumar

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.

1
gleitonfranco

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

1
Gimby