Jboss 7 AS источник данных для sqlserver - PullRequest
15 голосов
/ 06 декабря 2011

Я запускаю jboss в автономном режиме и установил для моего источника данных в standalone.xml следующее:

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

в папке %jbosshome%\modules\com\microsoft\sqlserver\jdbc\ У меня есть sqljdb4.jar и следующие module.xml:

<?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>

Когда я запускаю jboss, он выдает следующую ошибку:

> New missing/unsatisfied dependencies:    service
> jboss.jdbc-driver.sqljdbc (missing)

Кто-нибудь знает, что я сделал неправильно или чего мне не хватает?

Ответы [ 6 ]

12 голосов
/ 15 марта 2012

с использованием Jboss AS 7.1.1, а также установка модуля в %jbosshome%\modules\com\microsoft\sqlserver\jdbc\main Мне пришлось внести небольшое изменение в xml - элемент драйвера в standalone.xml должен быть:

 <driver name="sqljdbc" module="com.microsoft.sqlserver.jdbc">
      <driver-class>
           com.microsoft.sqlserver.jdbc.SQLServerDriver
      </driver-class>
 </driver>

и файл module.xml должен быть:

<?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>
5 голосов
/ 19 сентября 2012

С Jboss 7.1.1 мне удалось заставить его работать без указания модуля.

Просто поместите sqljdbc4.jar в каталог развертывания: % JBOSSHOME% \ автономного \ развертывания

Конфигурация, необходимая для источника данных в standalone.xml, выглядит следующим образом:

<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>
4 голосов
/ 12 декабря 2011

получил ту же ошибку, что и вы до

вместо% jbosshome% \ modules \ com \ microsoft \ sqlserver \ jdbc \

попробовать% jbosshome% \ modules \ com \ microsoft \ sqlserver \ jdbc \ main

, но .jar драйвера jdbc и module.xml находятся там.

1 голос
/ 15 октября 2013

Я использовал эту конфигурацию, и она работала нормально на 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>

Конечно, если вы не используете распределенный источник данных, вы можете настроить обычный класс драйверов, как было определено ранее.

Файл модуля выглядит следующим образом.

<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>
0 голосов
/ 20 апреля 2017

это работа для меня. в JBOSS 7, MSSQL JDBC-драйвер 6, тип 4, имя файла: sqljdbc42.jar

  • Установите имя драйвера: sqljdbc42.jar в [JBoss HOME] \ modules \ com \ microsoft \ main
  • добавить в тот же каталог module.xml с содержимым ниже

    <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>
    
  • вставить определение источника данных в standalone.xml в блоке <subsystem xmlns="urn:jboss:domain:datasources:4.0"> <datasources>, как показано ниже

    <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>
    
  • вставить определение драйвера в standalone.xml в блоке <subsystem xmlns="urn:jboss:domain:datasources:4.0"> <drivers>, как показано ниже

    <driver name="sqlserver2008" module="com.microsoft">
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
    </driver>
    

ps: "sqlserver2008" - это имя, которое вы хотите.

0 голосов
/ 27 апреля 2016

Развертывание JAR-файла JDBC (например, sqljdbc41.jar) с помощью консоли администратора должно позволять выбирать и использовать его при определении нового источника данных.

...