J'exécute jboss en mode autonome et j'ai défini ma source de données dans standalone.xml
comme suit:
<datasource jndi-name="MyDenaliDS" pool-name="MyDenaliDs_Pool" enabled="true" jta="true"
use-Java-context="true" use-ccm="true">
<connection-url>
jdbc:sqlserver://myip:1433;databaseName=mydb;integratedSecurity=true
</connection-url>
<driver>
sqljdbc
</driver>
<security>
<user-name>
username
</user-name>
<password>
password
</password>
</security>
</datasource>
<drivers>
<driver name="sqljdbc" module="com.Microsoft.sqlserver.jdbc">
<driver-class>
com.Microsoft.sqlserver.jdbc.SQLServerDataSource
</driver-class>
</driver>
</drivers>
dans le dossier %jbosshome%\modules\com\Microsoft\sqlserver\jdbc\
j'ai le sqljdb4.jar
et le module.xml
suivant:
<?xml version="1.0" encoding="UTF-8"?>
<module name="com.Microsoft.sqlserver.jdbc" xmlns="urn:jboss:module:1.0">
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Quand je commence le jboss cela me donne l'erreur suivante:
> New missing/unsatisfied dependencies: service
> jboss.jdbc-driver.sqljdbc (missing)
Quelqu'un sait ce que j'ai mal fait ou ce qu'il me manque?
a la même erreur que vous avant
au lieu de% jbosshome%\modules\com\Microsoft\sqlserver\jdbc \
essayez% jbosshome%\modules\com\Microsoft\sqlserver\jdbc\main
et mais les fichiers .jar du pilote jdbc et du module.xml sont bien là.
en utilisant Jboss AS 7.1.1 et en mettant le module dans %jbosshome%\modules\com\Microsoft\sqlserver\jdbc\main
, je devais apporter une légère modification au xml - l’élément du pilote dans standalone.xml devrait être:
<driver name="sqljdbc" module="com.Microsoft.sqlserver.jdbc">
<driver-class>
com.Microsoft.sqlserver.jdbc.SQLServerDriver
</driver-class>
</driver>
et le module.xml devrait être:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft.sqlserver.jdbc">
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
Avec Jboss 7.1.1, j'ai réussi à le faire fonctionner sans spécifier de module.
Il suffit de mettre sqljdbc4.jar dans le répertoire de déploiement: % JBOSSHOME%\standalone\deployments
La configuration requise pour la source de données dans standalone.xml est la suivante:
<datasource jndi-name="Java:jboss/datasources/myPool" pool-name="myPool" enabled="true" use-Java-context="true">
<connection-url>jdbc:sqlserver://127.0.0.1:1433;databaseName=myName;</connection-url>
<driver>sqljdbc4.jar</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>myUser</user-name>
<password>myPassword</password>
</security>
<statement>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
J'ai utilisé cette configuration et cela a fonctionné correctement sur AS7
<datasource jndi-name="Java:jboss/datasources/stagingDS" pool-name="stagingDS" enabled="true" use-Java-context="true">
<connection-url>jdbc:sqlserver://linp-sqlrpt-01;databaseName=pmdm</connection-url>
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver>sqlserver</driver>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
</datasource>
<drivers>
<driver name="sqlserver" module="com.Microsoft.jdbc">
<xa-datasource-class>com.Microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
</driver>
</drivers>
Bien sûr, si vous n'utilisez pas le DataSource distribué, vous pouvez configurer la classe de pilotes standard telle que définie précédemment.
Le fichier de module ressemble à ceci.
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft.jdbc">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="sqljdbc4.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
Le déploiement du fichier jar JDBC (par exemple, sqljdbc41.jar) par la console d’administration doit permettre de le sélectionner et de l’utiliser lors de la définition d’une nouvelle source de données.
c’est mon travail. dans JBOSS 7, pilote MSSQL JDBC 6, type 4, nom de fichier: sqljdbc42.jar
ajouter dans le même répertoire module.xml avec le contenu ci-dessous
<module xmlns="urn:jboss:module:1.1" name="com.Microsoft">
<resources>
<resource-root path="sqljdbc42.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.xml.bind.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
insérer la définition de la source de données dans standalone.xml dans le bloc <subsystem xmlns="urn:jboss:domain:datasources:4.0"> <datasources>
comme ci-dessous
<datasource jta="true" jndi-name="Java:jboss/datasources/iwebDS" pool-name="MSSQLDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://172.24.17.52:1803;DatabaseName=iWeb_IWEBSIT</connection-url>
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver>sqlserver2008</driver>
<pool>
<min-pool-size>10</min-pool-size>
<initial-pool-size>10</initial-pool-size>
<max-pool-size>100</max-pool-size>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>[sqlserver user]</user-name>
<password>[sqlserver password]</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
<background-validation>true</background-validation>
</validation>
</datasource>
insérer la définition du pilote dans standalone.xml dans le bloc <subsystem xmlns="urn:jboss:domain:datasources:4.0"> <drivers>
comme ci-dessous
<driver name="sqlserver2008" module="com.Microsoft">
<driver-class>com.Microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>
ps: "sqlserver2008" est le nom que vous souhaitez.