因为自己在做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就可以了。