2011-12-06 79 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 “是你想要的名字。