2011-12-06 82 views
14

我以單機模式運行JBoss和已在standalone.xml設置我的數據源到以下幾點:的JBoss 7作爲數據源的SQLSERVER

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

任何人都知道我做了什麼不正確的或我錯過了什麼?

回答

4

有像你一樣的錯誤

代替%jbosshome%\模塊之前的\ com \微軟\ SQLSERVER \ JDBC \

嘗試%jbosshome%\模塊\ COM \微軟\ SQLSERVER \ JDBC \主要是

但是jdbc驅動程序的.jar和module.xml超越。

+1

我這樣做,它仍然不適用於我在JBoss 7.0.2.Final –

11

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

和模塊.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> 
+0

我仍然得到14:55:59,408信息[org.jboss.as.controller](控制器引導線程)​​服務狀態報告 新的缺失/不滿意的依賴關係: 服務jboss.jdbc-driver.sqljdbc(缺少) –

+0

乾杯 - 它幫助!我改變的唯一事情是standalone.xml內標籤爲: <驅動程序名稱=「sqlserver的」模塊=「com.microsoft.sqlserver.jdbc」 /> TedEd

5

隨着Jboss 7.1.1我設法讓它在沒有指定模塊的情況下工作。是 %JBOSSHOME%\獨立\部署

配置需要在standalone.xml數據源如下:

只要把sqljdbc4.jar到部署目錄

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

使用jar文件名作爲驅動名字和跳過部分也爲我工作。 SQL Server驅動程序符合JDBC Type 4,部署它就足夠了。 – homaxto

1

我用這個配置,並在AS7上工作OK

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

當然,如果你不使用分佈式數據源,你可以配置常規驅動程序c如先前所定義的那樣。

模塊文件看起來像這樣。

<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

部署JDBC jar文件(例如sqljdbc41.jar)由管理控制檯應允許選擇和定義新的數據源時使用它。

0

這是我的工作。 在JBOSS 7,MSSQL JDBC驅動器6,類型4,文件名:在[JBoss的HOME] \模塊\ COM \微軟\主

  • sqljdbc42.jar:sqljdbc42.jar

    • 安裝驅動程序的名稱在相同的目錄模塊下添加。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> 
      
    • 插入數據源定義的內容以塊<subsystem xmlns="urn:jboss:domain:datasources:4.0"> <datasources> standalone.xml如下

      <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> 
      
    • 插入驅動器定義在塊<subsystem xmlns="urn:jboss:domain:datasources:4.0"> <drivers>到standalone.xml如下

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

    ps:「sqlserver2008 「是你想要的名字。