2017-06-14 3 views
0

J'ai ajouté dans pom.xml pilote jdbc:Comment ajouter un module de service dans un essaim sauvage avec un emballage .war?

<dependency> 
    <groupId>com.microsoft.sqlserver</groupId> 
    <artifactId>sqljdbc4</artifactId> 
    <version>4.0</version> 
</dependency> 

Et j'ajouter dans le projet-defaults.yml:

swarm: 
    datasources: 
    data-sources: 
     erp-ds: 
     driver-name: sqlserver 
     connection-url: jdbc:sqlserver://localhost:1433;DatabaseName=COMPARTILHADO 
     user-name: teste 
     password: teste 
    jdbc-drivers: 
     sqlserver: 
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 
     xa-datasource-name: com.microsoft.sqlserver.jdbc.SQLServerXADataSource 
     driver-module-name: com.microsoft.sqlserver 

mais je lance l'application, il émet une exception:

2017-06-14 13:09:54,337 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "erp-ds") 
]) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.sqlserver"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "jboss.driver-demander.java:jboss/datasources/erp-ds is missing [jboss.jdbc-driver.sqlserver]", 
     "org.wildfly.data-source.erp-ds is missing [jboss.jdbc-driver.sqlserver]" 
    ] 
} 

Dans Wildfly je dois ajouter le pilote dans standalone.xml mais je ne sais pas dans wildfly-swarm. En phase de développement, j'ajoute un DatasourcesFraction avec jdbcDriver, c'est facile, mais quand je construis .war et que je lance uberjar java -jar ??????-swarm.jar jette l'exception ci-dessus.

Répondre

1

Vous fournissez actuellement trop d'informations dans project-defaults.yml!

swarm: 
    datasources: 
    data-sources: 
     erp-ds: 
     driver-name: sqlserver 
     connection-url: jdbc:sqlserver://localhost:1433;DatabaseName=COMPARTILHADO 
     user-name: teste 
     password: teste 

devrait être tout ce dont vous avez besoin. En ajoutant com.microsoft.sqlserver: sqljdbc4: 4.0 en tant que dépendance de projet, WF Swarm crée automatiquement la configuration du pilote JDBC pour vous. Cela ne résoudra peut-être pas le problème que vous rencontrez. Je vous invite donc à consulter le fichier WAR que WF Swarm modifie (celui qui n'a pas le suffixe .original) dans/target pour voir si votre fichier jdbc est à l'intérieur. WEB-INF/lib.

+0

Merci. J'ai reconstruit mon pom.xml et j'ai simplifié beaucoup de choses ici et cela a fonctionné. – Igor