现在的位置: 首页 > 综合 > 正文

JBoss4到JBoss5的迁移

2013年12月19日 ⁄ 综合 ⁄ 共 2774字 ⁄ 字号 评论关闭
前段时间由于项目的需要,需要把项目从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版本 

Xml代码  收藏代码
  1. <?xml version = "1.0" encoding = "UTF-8"?>  
  2.   
  3. <server>  
  4.   
  5.   
  6.  <!-- The HTTP invoker service configration 
  7.  
  8.   -->  
  9.   
  10.       <mbean  
  11.   
  12.     code = "org.jboss.hibernate.jmx.Hibernate"  
  13.   
  14.     name = "jboss:name=XXXSessionFactory">  
  15.   
  16.     <attribute name = "DatasourceName">java:/XXX-DS</attribute>  
  17.   
  18.     <attribute name = "Dialect">org.hibernate.dialect.SQLServerDialect</attribute>  
  19.   
  20.     <attribute name = "SessionFactoryName">java:/hibernate /XXXFactory</attribute>  
  21.   
  22.     <attribute name = "ScanForMappingsEnabled">false</attribute>  
  23.   
  24.     <attribute name = "ShowSqlEnabled">false</attribute>  
  25.   
  26.  </mbean>  
  27.   
  28.   
  29. </server>  

JBoss5版本 

Xml代码  收藏代码
  1. <?xml version = "1.0"encoding = "UTF-8"?>  
  2.   
  3.   
  4. <hibernate-configuration xmlns = "urn:jboss:hibernate-deployer:1.0">  
  5.   
  6.   
  7.   <session-factory name = "java:/hibernate/XXXFactory">  
  8.   
  9.     <property name = "datasourceName">java:/XXX-DS</property>  
  10.   
  11.     <property name = "dialect">org.hibernate.dialect.SQLServerDialect</property>  
  12.   
  13.     <property name = "scanForMappingsEnabled">false</property>  
  14.   
  15.     <property name = "showSqlEnabled">false</property>  
  16.   
  17.   </session-factory>  
  18.   
  19.   
  20. </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重命名,否则的话,会在启动的时候报错。 

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

抱歉!评论已关闭.