JBoss4到JBoss5的迁移

来源:互联网 发布:长春网络广播电视台 编辑:程序博客网 时间:2024/05/01 02:25

前段时间由于项目的需要,需要把项目从JBoss4迁移到JBoss5上去,着实花了一点功夫才搞定,先把迁移中的一些经验分享给各位,如有不对的地方,欢迎指正。


迁移主要是配置文件的一些迁移,以及ant的xml文件的修改(主要是JBoss的目录结构发生了变化).


1. 关于EJB的两个配置文件ejb-jar.xml和jboss.xml


首先就是XML文件的DOCTYPE标签的内容要从JBoss4修改成JBoss5


注意点


在ejb-jar.xml中,以前在消息Bean的<res-ref-name>标签会使用“jms/QCF”缩写来表示,在JBoss5中不能再使用了,请改成ConnectionFactory,否则启动JBoss的时候会报错。


<local-jndi-name>这个标签不再可用了。


2. 关于Hibernate的配置


在JBoss4中应该有两种风格的Hibernate配置,一种基于hibernate,一种基于JBoss的。到了JBoss5中似乎只有一种,好像是混合体,怪怪的。


首先比较有趣的时候XML命名的方式变了,JBoss4里面一般都是用jboss-service.xml这个名字,现在变成了service-xxx.xml,我在项目中使用的是service-hibernate.xml这个名字。


接着说说xml文件本身,JBoss5中使用的配置方式比较类似于JBoss4中的基本JBoss的配置模式,但是有几点小变化一定要注意,通过比较下面两个文件的内容你就明白了。


JBoss4版本


<?xmlversion="1.0"encoding="UTF-8"?>

<server>


  <!-- The HTTP invoker service configration

 -->

       <mbean

    code="org.jboss.hibernate.jmx.Hibernate"

    name="jboss:name=XXXSessionFactory">

     <attributename="DatasourceName">java:/XXX-DS</attribute>

     <attributename="Dialect">org.hibernate.dialect.SQLServerDialect</attribute>

     <attributename="SessionFactoryName">java:/hibernate/XXXFactory</attribute>

     <attributename="ScanForMappingsEnabled">false</attribute>

     <attributename="ShowSqlEnabled">false</attribute>

  </mbean>


</server>



JBoss5版本


<?xmlversion="1.0"encoding="UTF-8"?>


<hibernate-configurationxmlns="urn:jboss:hibernate-deployer:1.0">


   <session-factoryname="java:/hibernate/XXXFactory">

     <propertyname="datasourceName">java:/XXX-DS</property>

     <propertyname="dialect">org.hibernate.dialect.SQLServerDialect</property>

     <propertyname="scanForMappingsEnabled">false</property>

     <propertyname="showSqlEnabled">false</property>

   </session-factory>


</hibernate-configuration>


注意点


* 标签名称的变化 “attribute” 变成了 “property”。


* name的大小写的变化,JBoss4首字母大写,JBoss5首字母小写。


* SessionFactoryName的位置变化,JBoss4里面是一个单独属性,JBoss5里面是一个Element。



3. 事务配置


以前conf目录下jboss-service.xml里关于事务的配置部分被挪到新增的文件transaction-jboss-beans.xml里去了,这个文件位于deploy目录下


4. jms的配置目录


位于deploy目录下关于jms的配置目录的名称的改变:jms->messaging

 


5. JMS的destination的配置


添加JMS队列时,JBoss4使用jbossmq-destinations-service.xml,而JBoss5使用的是destinations-service.xml,添加的格式只需要照着原有的队列配置添加,修改一下名字和JNDI的名字即可。


6. JMS中关于JDBC的配置


JBoss4使用的配置文件是mssql-jdbc2-service.xml,而JBoss5使用的是mssql-persistence-service.xml。常见的配置其实就是把这两个文件中的data source的名字换成你自己的即可。


7. 关于tomcat


JBoss5中tomcat还是在的,只不过是换成了jbossweb.sar。在JBoss5把deployer单独分离出来了,放在deployer目录下,该目录和deploy目录在同一个目录下。tomcat也有对应的deployer,在/jbossweb.deployer目录下,以前的tomcat的jboss-service.xml配置被拆分到了jbossweb.sar和jbossweb.deployer的配置文件,你可以根据你的配置要求去修改对应的文件。


8. 关于ROOT.sar


JBoss5中如果你要把自己的应用设成默认根目录,需要对ROOT.sar重命名,否则的话,会在启动的时候报错。


暂时就总结这么多,总结得比较粗,希望对大家有用。

 

 

原创粉丝点击