工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1825|回复: 1

在JBOSS下配置使用MYSQL数据厍

[复制链接]
发表于 2006-8-9 17:17 | 显示全部楼层 |阅读模式
初学EJB,也是初次接触JBOSS(以前一直用TOMCAT),开发Bean管理的实体Bean勉强成功了(虽有异常抛出,但数据总算写到MYSQL中),但开发容器管理的实体Bean总是无法连接到MYSQL,请高手指点一二。(能详细指教当然最好啦,说说要特别注意的地方也感激不尽了)[em09]

----------------------------------------------------------------------------------------------------------------------------------
问题终于已经解决,分享一下我的方法。
全部工作都是在修改JBOSS的配置文件。

首先把 \docs\examples\jca\mysql-ds.xml 这个文件复制到 \server\default\deploy
接着修改 \server\default\conf 目录下的三个文件:
1,查看 login-config.xml 文件里面是否有以下的配置文字,如果没有,请在 <policy> 元素下添加。
<application-policy name = "MySqlDbRealm">
                <authentication>
                        <login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
                                <module-option name ="principal"></module-option>
                                <module-option name ="userName">root</module-option>
                                <module-option name ="password">root</module-option>
                                <module-option name ="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
                        </login-module>
                </authentication>
        </application-policy>

用户名和密码作相应更改。

2,standardjaws.xml 文件有许多种数据厍的配置,删除其它的,只剩下这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN"
    "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd">
<jaws>
   <datasource>java:/ejb/ejbPool</datasource>
   <type-mapping>mySQL</type-mapping>
   <debug>false</debug>

   <default-entity>
      <create-table>true</create-table>
      <remove-table>false</remove-table>
      <tuned-updates>true</tuned-updates>
      <read-only>false</read-only>
      <time-out>300</time-out>
      <row-locking>false</row-locking>
      <read-ahead>false</read-ahead>
   </default-entity>

   <type-mappings>
      <type-mapping-definition>
         <name>mySQL</name>
         <mapping>
            <java-type>java.lang.Float</java-type>
            <jdbc-type>FLOAT</jdbc-type>
            <sql-type>FLOAT</sql-type>
         </mapping>
        ......
        <!-- 这里省略了中间的一些 mapping 元素-->

         <mapping>
            <java-type>java.sql.Time</java-type>
            <jdbc-type>TIME</jdbc-type>
            <sql-type>BIGINT</sql-type>
         </mapping>
      </type-mapping-definition>
   </type-mappings>
</jaws>

3,同理,把 standardjbosscmp-jdbc.xml 文件修改成这样:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN"
   "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">
<jbosscmp-jdbc>
   <defaults>
      <datasource>java:/ejb/ejbPool</datasource>
          ......
   </defaults>

   <type-mappings>
      <type-mapping>
         <name>mySQL</name>
                 ......
      </type-mapping>
   </type-mappings>

   <entity-commands>
     ......
   </entity-commands>

   <reserved-words>          
     ......
   </reserved-words>
</jbosscmp-jdbc>

省略号表示里面内容按照原样,不用修改。

PS:为了防止意外,还是把原始的配置文件备份好,万一失败可以还原。如果提示找不到数据厍驱动和错误,请把 MYSQL 的JDBC驱动文件(我的是 mysql-connector-java-5.0.0-beta-bin.jar 复制到 \server\default\lib

[ 本帖最后由 powerwind 于 2006-8-10 09:18 编辑 ]
 楼主| 发表于 2006-8-12 22:43 | 显示全部楼层
今天尝试不更改 \server\default\conf 目录下的 standardjaws.xml standardjbosscmp-jdbc.xml   两个文件。而是把它们(指如前面所更改的)放在部署文件的 META-INF 的目录下,并分别改名为 jaws.xml jbosscmp-jdbc.xml   ,结果也成功了。

如果没有加上那两个文件,JBOSS默认使用 hypersonic SQL数据厍。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-15 10:01

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表