前段时间由于项目的需要,需要把项目从JBoss4迁移到JBoss5上去,着实花了一点功夫才搞定,先把迁移中的一些经验分享给各位,如有不对的地方,欢迎指正。
迁移主要是配置文件的一些迁移,以及ant的xml文件的修改(主要是JBoss的目录结构发生了变化).
[b]1. 关于EJB的两个配置文件ejb-jar.xml 和jboss.xml[/b]
首先就是XML文件的DOCTYPE标签的内容要从JBoss4修改成JBoss5
注意点
在ejb-jar.xml中,以前在消息Bean的<res-ref-name>标签会使用“ jms/QCF ”缩写来表示,在JBoss5中不能再使用了,请改成ConnectionFactory ,否则启动JBoss的时候会报错。
<local-jndi-name> 这个标签不再可用了。
[b]2. 关于Hibernate的配置[/b]
在JBoss4中应该有两种风格的Hibernate配置,一种基于hibernate,一种基于JBoss的。到了JBoss5中似乎只有一种,好像是混合体,怪怪的。
首先比较有趣的时候XML命名的方式变了,JBoss4里面一般都是用jboss-service.xml 这个名字,现在变成了service-xxx.xml ,我在项目中使用的是service-hibernate.xml这个名字。
接着说说xml文件本身,JBoss5中使用的配置方式比较类似于JBoss4中的基本JBoss的配置模式,但是有几点小变化一定要注意,通过比较下面两个文件的内容你就明白了。
JBoss4版本
JBoss5版本
注意点
* 标签名称的变化 “[color=red]attribute[/color]” 变成了 “[color=red]property[/color]”。
* name的大小写的变化,JBoss4首字母大写,JBoss5首字母小写。
* SessionFactoryName的位置变化,JBoss4里面是一个单独属性,JBoss5里面是一个Element。
[b]3. 事务配置[/b]
以前conf目录下 jboss-service.xml 里关于事务的配置部分被挪到新增的文件 transaction-jboss-beans.xml 里去了,这个文件位于deploy目录下
[b]4. jms的配置目录[/b]
位于deploy目录下关于jms的配置目录的名称的改变:jms->messaging
[b]5. JMS的destination的配置[/b]
添加JMS队列时,JBoss4使用jbossmq-destinations-service.xml ,而JBoss5使用的是 destinations-service.xml ,添加的格式只需要照着原有的队列配置添加,修改一下名字和JNDI的名字即可。
[b]6. JMS中关于JDBC的配置[/b]
JBoss4使用的配置文件是 mssql-jdbc2-service.xml , 而JBoss5使用的是 mssql-persistence-service.xml。常见的配置其实就是把这两个文件中的data source的名字换成你自己的即可。
[b]7. 关于tomcat[/b]
JBoss5中 tomcat还是在的,只不过是换成了jbossweb.sar。在JBoss5把deployer单独分离出来了,放在deployer目录下,该目录和deploy目录在同一个目录下。tomcat也有对应的deployer,在/jbossweb.deployer 目录下,以前的tomcat的jboss-service.xml配置被拆分到了 jbossweb.sar和jbossweb.deployer 的配置文件,你可以根据你的配置要求去修改对应的文件。
[b]8. 关于 ROOT.sar[/b]
JBoss5中如果你要把自己的应用设成默认根目录,需要对 ROOT.sar重命名,否则的话,会在启动的时候报错。
暂时就总结这么多,总结得比较粗,希望对大家有用。
迁移主要是配置文件的一些迁移,以及ant的xml文件的修改(主要是JBoss的目录结构发生了变化).
[b]1. 关于EJB的两个配置文件ejb-jar.xml 和jboss.xml[/b]
首先就是XML文件的DOCTYPE标签的内容要从JBoss4修改成JBoss5
注意点
在ejb-jar.xml中,以前在消息Bean的<res-ref-name>标签会使用“ jms/QCF ”缩写来表示,在JBoss5中不能再使用了,请改成ConnectionFactory ,否则启动JBoss的时候会报错。
<local-jndi-name> 这个标签不再可用了。
[b]2. 关于Hibernate的配置[/b]
在JBoss4中应该有两种风格的Hibernate配置,一种基于hibernate,一种基于JBoss的。到了JBoss5中似乎只有一种,好像是混合体,怪怪的。
首先比较有趣的时候XML命名的方式变了,JBoss4里面一般都是用jboss-service.xml 这个名字,现在变成了service-xxx.xml ,我在项目中使用的是service-hibernate.xml这个名字。
接着说说xml文件本身,JBoss5中使用的配置方式比较类似于JBoss4中的基本JBoss的配置模式,但是有几点小变化一定要注意,通过比较下面两个文件的内容你就明白了。
JBoss4版本
<?xml version = "1.0" encoding = "UTF-8"?>
<server>
<!-- The HTTP invoker service configration
-->
<mbean
code = "org.jboss.hibernate.jmx.Hibernate"
name = "jboss:name=XXXSessionFactory">
<attribute name = "DatasourceName">java:/XXX-DS</attribute>
<attribute name = "Dialect">org.hibernate.dialect.SQLServerDialect</attribute>
<attribute name = "SessionFactoryName">java:/hibernate /XXXFactory</attribute>
<attribute name = "ScanForMappingsEnabled">false</attribute>
<attribute name = "ShowSqlEnabled">false</attribute>
</mbean>
</server>
JBoss5版本
<?xml version = "1.0"encoding = "UTF-8"?>
<hibernate-configuration xmlns = "urn:jboss:hibernate-deployer:1.0">
<session-factory name = "java:/hibernate/XXXFactory">
<property name = "datasourceName">java:/XXX-DS</property>
<property name = "dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name = "scanForMappingsEnabled">false</property>
<property name = "showSqlEnabled">false</property>
</session-factory>
</hibernate-configuration>
注意点
* 标签名称的变化 “[color=red]attribute[/color]” 变成了 “[color=red]property[/color]”。
* name的大小写的变化,JBoss4首字母大写,JBoss5首字母小写。
* SessionFactoryName的位置变化,JBoss4里面是一个单独属性,JBoss5里面是一个Element。
[b]3. 事务配置[/b]
以前conf目录下 jboss-service.xml 里关于事务的配置部分被挪到新增的文件 transaction-jboss-beans.xml 里去了,这个文件位于deploy目录下
[b]4. jms的配置目录[/b]
位于deploy目录下关于jms的配置目录的名称的改变:jms->messaging
[b]5. JMS的destination的配置[/b]
添加JMS队列时,JBoss4使用jbossmq-destinations-service.xml ,而JBoss5使用的是 destinations-service.xml ,添加的格式只需要照着原有的队列配置添加,修改一下名字和JNDI的名字即可。
[b]6. JMS中关于JDBC的配置[/b]
JBoss4使用的配置文件是 mssql-jdbc2-service.xml , 而JBoss5使用的是 mssql-persistence-service.xml。常见的配置其实就是把这两个文件中的data source的名字换成你自己的即可。
[b]7. 关于tomcat[/b]
JBoss5中 tomcat还是在的,只不过是换成了jbossweb.sar。在JBoss5把deployer单独分离出来了,放在deployer目录下,该目录和deploy目录在同一个目录下。tomcat也有对应的deployer,在/jbossweb.deployer 目录下,以前的tomcat的jboss-service.xml配置被拆分到了 jbossweb.sar和jbossweb.deployer 的配置文件,你可以根据你的配置要求去修改对应的文件。
[b]8. 关于 ROOT.sar[/b]
JBoss5中如果你要把自己的应用设成默认根目录,需要对 ROOT.sar重命名,否则的话,会在启动的时候报错。
暂时就总结这么多,总结得比较粗,希望对大家有用。