由于Jboss默认的数据库为HypersonicDB,很多人,包括我,对它都不是十分了解,只知道它是java写的,使用起来不是很方便,本人最近在学EJB,所以研究了一下。
我在网上找了很多资料包括什么《JBOSS 数据源设置大全》啊,一类的文章,都不能成功将默认的数据库改为Oricle10g(别的数据库能否成功我没有试过),也就是我用的数据库,所以自己查阅了国外的一些BBS,总结了一下经验,贡献给chinajavalab。
1.删除Jboss\server\default\deploy下的hsql-ds.xml,从Jboss\docs\examples\jca中复制一个oracle-ds.xml过来,修改里面的属性;connection-url,driver-class,user-name,pssword,其中jndi-name最好设置成DefaultDS,这样可以方便后面几个xml文件的修改
2.删除Jboss\server\default\deploy\jms下的一切有关HSQL的文件,共有两个,
从Jboss\docs\examples\jms中复制一个oracle-jdbc2-service.xml过来,将<depends>中的name改为DefaultDS,或者你自己设置的jndi-name
3.进入Jboss\server\default\conf,如果你将jndi-name设置成DefaultDS的话,就不用设置login-config.xml了,否则要设置,将里面的DefaultDS更换成你的jndi-name,后面的xml文件也要注意jndi-name,后面就不再提示了
4.修改jboss-service.xml,将<!--attribute name="Pad">true</attribute--> 的注释去掉
5.修改standardjbosscmp-jdbc.xml,将datasource-mapping设置成Oracle9i,这里不管你用的是9i还是10g都要设置成9i,jboss4中目前还没有10g的相关内容,我用的是10g,没有问题的,关键是你的dirver包一定要是class12.jar,并将它放进Jboss\server\default\lib中
6.修改standardjaws.xml,将type-mapping设置为Oracle9i,增加
<type-mapping-definition>
<name>Oracle9i</name>
<mapping>
.
.
中间的内容到standardjbosscmp-jdbc.xml中的Oracle9i里找,复制过来
,只要其中<mapping>的内容,其他不要
.
.
</mapping>
</type-mapping-definition>
好了,重新启动你的jboss,部署一个EJB试一试,如果有异常,表示你还没有配置正确