2017-10-15 17 views
1

Je n'arrive pas à ajouter une source de données à mon serveur Wildfly en utilisant un fichier -ds.xml comme recommandé par le jboss doc. J'ai un projet Maven avec un persistence.xml:Où mettre -ds.xml?

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 

    <persistence-unit name="primary"> 
     <jta-data-source>java:jboss/datasources/DvdRental4</jta-data-source> 
     <properties> 
     <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
     <property name="hibernate.show_sql" value="true" /> 
     </properties> 
    </persistence-unit> 
</persistence> 

et Postgresql ds.xml dans la racine du projet:

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
    <local-tx-datasource> 
     <jndi-name>DvdRental4</jndi-name> 
     <connection-url>jdbc:postgresql://localhost:5432/dvdrental4</connection-url> 
     <driver>postgresql-9.4.1208</driver> 
     <user-name>postgres</user-name> 
     <password>1234</password> 
     <metadata> 
      <type-mapping>PostgreSQL</type-mapping> 
     </metadata> 
    </local-tx-datasource> 
</datasources> 

Lors de l'exécution mvn package et le déploiement du .war, je reçois un erreur que DvdRental4 est manquant. Donc je suppose que je dois placer le postgres-ds.xml quelque part, mais où? Ou peut-être que les fichiers xml sont faux? Si nécessaire, je peux également fournir le fichier pom.xml. J'ai déjà créé la base de données dvdrental4, donc cela ne devrait pas poser de problème.

J'ai aussi lu quelque part que vous devez placer le fichier -ds.xml dans le dossier de déploiement, j'ai seulement un dossier wildfly/standalone/deployments, et le mettre dedans n'a pas fonctionné.

EDIT: wildfly donne l'erreur suivante:

ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.DvdRental4"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "jboss.persistenceunit.\"dvdrental-gruppe-4.war#primary\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jboss.datasources.DvdRental4]", 
     "jboss.persistenceunit.\"dvdrental-gruppe-4.war#primary\" is missing [jboss.naming.context.java.jboss.datasources.DvdRental4]" 
    ] 
} 

Répondre

0

Je pense que je l'ai résolu en plaçant simplement le fichier * -ds.xml dans le projet/src/main/webapp/WEB-INF de mon projet maven, au moins il n'y a pas d'erreur en disant que la source de données n'a pas pu être trouvée. J'ai aussi changé le postgres-ds.xml un peu:

<?xml version="1.0" encoding="UTF-8"?> 
<datasources> 
    <datasource jndi-name="java:jboss/datasources/DvdRental4" pool-name="DvdRental4" 
     enabled="true" use-java-context="true"> 
     <connection-url>jdbc:postgresql://localhost:5432/dvdrental4</connection-url> 
     <driver>postgresql-9.4.1208.jar</driver> 
     <security> 
      <user-name>postgres</user-name> 
      <password>1234</password> 
     </security> 
    </datasource> 
</datasources> 

Note: Je le conducteur déployé .jar, c'est pourquoi je peux spécifier le pilote directement .jar, je pense.

0

Le nom JNDI que vous avez spécifié pour votre source de données est "DvdRental4". Mais le contexte de persistance spécifie "java: jboss/datasources/DvdRental4". Je ne suis pas sûr que ce soit correct. Essayez "java: jboss/datasources/DvdRental4" aux deux endroits ou (encore mieux) utilisez la vue Boss JNDI pour voir où la source de données est réellement déployée.

+0

L'utilisation de "java: jboss/datasources/DvdRental4" dans les deux endroits ne l'a pas résolu, déjà essayé. Quelle est cette vue JNDI et comment l'utiliser? – New2HTML

+0

La manière graphique a également fonctionné pour moi, naviguant vers la console d'administration et allant pour: Runtime -> Serveur autonome -> Sous-systèmes -> Vue JNDI -> Voir – fhossfel

+0

Je ne peux pas le trouver n'importe où, ni sous datasources ni ailleurs. – New2HTML

-1

La possibilité de déployer des sources de données n'était pas une fonctionnalité qui l'a fait entre JBoss 5 et la réécriture AS7, seulement les destinations jms déployables. Vous devrez configurer le serveur pour définir la source de données, avant de déployer votre application.

+0

Le document indique que cette fonctionnalité a été réactivée dans AS 7.1: https://docs.jboss.org/author/display/AS71/DataSource+configuration?_sscc=t – fhossfel