web-dev-qa-db-fra.com

source de données jboss 7 AS pour sqlserver

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?

14
Marthin

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à.

4
98percentmonkey

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>
11
blank

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>
5
JJ Roman

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>
1
Mike Houston

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.

0
Omid

c’est mon travail. dans JBOSS 7, pilote MSSQL JDBC 6, type 4, nom de fichier: sqljdbc42.jar

  • Installez le nom du pilote: sqljdbc42.jar dans [JBoss HOME]\modules\com\Microsoft\main
  • 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.

0
Terry Lao