|
初学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 编辑 ] |
|