把WebLogic EJB程序迁移到JBoss上__教程 |
|
日期:2007-5-20 0:35:37 人气:74 [大 中 小] |
|
|
|
通过修改mysql-ds.xml和login-config.xml文件,JBoss 4.0服务器已经被配置好了,可以使用MySQL数据库了。除了前面的一些特定的设置之外,可能还需要对JBoss部署文件和JBoss JDBC配置文件作一些修改。
如果"建立表"选项被选中(通过把jbosscmp-jdbc.xml中的create-table元素设置为true)用于部署CMP实体EJB,并且MySQL表的主键(或唯一键)的长度超过了500字节,应用程序的部署过程会在MySQL数据库中生成一个SQL语法错误。对于java.lang.String类型的CMP字段,我们可以通过在standardjbosscmp-jdbc.xml部署文件的mySQL类型映射中把用于Java类型java.lang.String的SQL类型设置为较低的VARCHAR值来减小主键(或唯一键)的长度。另一个可能出现的问题是jbosscmp-jdbc.xml部署文件中的column-name元素。如果某个MySQL表的列名与MySQL保留字相同,在JBoss中部署J2EE应用程序的时候会产生一个错误。解决这个问题的方法是使列名与MySQL保留字不同。 转换WebLogic EJB应用程序
在建立起使用MySQL的JBoss服务器之后,你现在必须把该WebLogic EJB应用程序转换为JBoss EJB应用程序,这就涉及到部署文件的修改。WebLogic实体EJB应用程序由EJB部署文件(ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml),bean类(CatalogBean.java)、远程接口(Catalog.java)和home接口(CatalogHome.java)组成。为了在WebLogic服务器上部署实体EJB,需要建立一个EJB .jar文件,这个EJB .jar文件的结构如下:
META-INF/ ejb-jar.xml weblogic-ejb-jar.xml weblogic-cmp-rdbms-jar.xml CatalogBean.class Catalog.class CatalogHome.class EJB的结构信息和应用程序汇编信息都在部署文件中指定。结构信息包括说明EJB是对话EJB还是实体EJB。ejb-jar.xml部署文件中的应用程序汇编信息在assembly-descriptor元素中指定。WebLogic中该实体EJB部署文件包括ejb-jar.xml、weblogic-ejb-jar.xml和weblogic-cmp-rdbms-jar.xml。相应的JBoss部署文件是ejb-jar.xml、jboss.xml和jbosscmp-jdbc.xml。这些文件之间的转换如下所示。
ejb-jar.xml部署文件对于WebLogic和JBoss来说都是一样的,除了multiplicity元素之外。JBoss服务器的ejb-jar.xml中的multiplicity元素需要大写,例如One或Many,而不是one或many。
示例实体EJB的ejb-jar.xml部署文件包含在示例代码中。示例ejb-jar.xml定义了一个叫做"Catalog"的实体EJB。这个示例EJB拥有CMP字段catalogId、journal和publisher。其主键字段是catalogId。
把weblogic-ejb-jar.xml转换为jboss.xml
weblogic-ejb-jar.xml和jboss.xml部署文件都是EJB厂商的特定部署文件。为了把WebLogic EJB应用程序部署到JBoss应用程序服务器上,必须把weblogic-ejb-jar.xml部署文件转换为jboss.xml。
weblogic-ejb-jar.xml中的根元素是weblogic-ejb-jar。jboss.xml中的根元素是jboss。在jboss.xml和weblogic-ejb-jar.xml部署文件中指定某个EJB的JNDI名称的元素是jndi-name或local-jndi-name。本文中的示例实体EJB的weblogic-ejb-jar.xml部署文件也包含在示例代码中。weblogic-ejb-jar.xml部署文件的DOCTYPE元素是:
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB//EN" "http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd" > jboss.xml部署文件的DOCTYPE是: <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd"> 我们通过一个自定义的XSLT样式表jboss.xslt(包含在示例代码中)把部署文件weblogic-ejb-jar.xml转换为jboss.xml。该样式表建立jboss.xml,它是与WebLogic的weblogic-ejb-jar.xml部署文件相当的JBoss文件。使用jboss.xslt样式表所生成的jboss.xml文件也包含在示例代码中。
把weblogic-cmp-rdbms-jar.xml转换为jbosscmp-jdbc.xml
weblogic-cmp-rdbms-jar.xml部署文件指定了CMP实体EJB的数据库持续信息。weblogic-cmp-rdbms-jar.xml文件包含实体EJB的表名称、连接到数据库的数据源和与该实体EJB CMP字段对应的列。示例实体EJB的weblogic-cmp-rdbms-jar.xml部署文件包含在可以下载的.zip文件中。指定CMP视图EJB持续信息的JBoss部署文件是jbosscmp-jdbc.xml。
|
|
出处:本站原创 作者:佚名 |
|
|