因爲自己在做J2EE項目時遇到這方面的問題,所以將自己的配置過程與大家分享,希望給大家帶來好處。
版本:
jboss-4.2.2 GA
myeclipse-6.0
mysql-5.0 圖形界面前端SQLyog.
一、我們在mysql裏面建立一個我們自己的數據庫,並在裏面建立幾張我們需要的表格。爲了方便數據庫操作,我使用了SQLyog數據庫圖形前端。我們建立的數據庫名爲j2ee.用戶名爲root,密碼爲123.其中有一張表格student.
我們己經在student表格裏面插入了三行數據。
二、我們在myeclipse裏面添加jboss服務器,
只需要將Jboss home directory設置到JBOSS主文件夾下就行了。
三、下載JDBC
下載mysql-connector-java-3.1.12-bin.jar(有許多種版本,都可以),並將它複製到%jboss_home%/server/default/lib文件夾下。
四、配置數據源
將%JBOSS_home%/docs/examples/jca/文件夾中的mysql-ds.xml複製到%JBOSS_HOME%/server/default/deploy/文件夾中,並修改至如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DefaultMySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/J2EE</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>123</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
上面紅色標出的地方就是需要修改的地方。
MySqlDS這裏面放的是這個數據源在JNDI裏面的名字。以後有的操作都是通過JNDI裏的這個名字找到這個數據庫。我在這裏將他改爲DefaultMySqlDS.
jdbc:mysql://mysql-hostname:3306/jbossdb紅色地方是放數據庫的名字,所以我們應該將jbossdb改爲j2ee。
jdbc:mysql://mysql-hostname:3306/j2ee
x用戶名
y密碼
改爲
root
123
保存後退出,再打開%JBOSS_HOME%/server/default/conf/文件夾中的login-config.xml文件進行修改。
找到這一部分修改成下面的樣子:
<!--MySQL Data-Source Settings-->
<application-policy name = "MySqlDbRealm">
<authentication>
<login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name="dsJndiName">DefaultMySqlDS</module-option>
<module-option name ="principal">DefaultMySqlDS</module-option>
<module-option name ="userName">root</module-option>
<module-option name ="password">123</module-option>
<module-option name ="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=MySqlDS
</module-option>
</login-module>
</authentication>
</application-policy>
沒有的可以自己添加。沒什麼關係。保存後退出。
再打開%JBOSS_HOME%/server/default/conf/文件夾中的standardjbosscmp-jdbc.xml
將最開始的部分做些修改。
<defaults>
<datasource>java:/DefaultMySqlDS</datasource>
<!-- optional since 4.0 <datasource-mapping>Hypersonic SQL</datasource-mapping> -->
重新啓動JBOSS,我們就可以在JNDI裏面看到數據源了。下面我們就可以直接調用了。
查看JNDI的步驟:
JMX-console---->service=JNDIView -->
List of MBean operations:
java.lang.String list()
Output JNDI info as text
點擊invoke().
可以看到下面這部分:
java: Namespace
+- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory) +- DefaultDS (class: org.jboss.resource.adapter.jdbc.WrapperDataSource) +- SecurityProxyFactory (class: org.jboss.security.SubjectSecurityProxyFactory) +- DefaultMySqlDS (class: org.jboss.resource.adapter.jdbc.WrapperDataSource) +- DefaultJMSProvider (class: org.jboss.jms.jndi.JNDIProviderAdapter) +- comp (class: javax.naming.Context) +- JmsXA (class: org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl) +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
說明我們配置成功了,以後我們想要調用這樣數據源直接查找java:/DefaultMySqlDS就可以了。