当前位置:天才代写 > tutorial > JAVA 教程 > 把WebLogic EJB措施迁移到JBoss上

把WebLogic EJB措施迁移到JBoss上

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:837

副标题#e#

WebLogic处事器是一款顶级的贸易应用措施处事器。可是对付小局限的开拓者来说,开起源代码的、基于尺度的应用措施处事器JBoss是可以用来替换雷同WebLogic或WebSphere等贸易应用措施处事器的。不幸的是,在WebLogic中开拓的应用措施不能在JBoss中陈设。JBoss迁移处事为我们提供了把应用措施迁移到JBoss上的支持。作为取代,通过把厂商特定的陈设文件信息迁移到JBoss上,是大概把应用措施迁移到JBoss上的。为了演示如何把应用措施迁移到JBoss的进程,我们将把一个在WebLogic中开拓的带有Oracle数据库的EJB应用措施迁移到带有MySQL数据库的JBoss应用措施处事器上。

预安装软件

为了设置MySQL数据库的JDBC毗连,需要下载MySQL数据库驱动措施类。

1.下载MySQL JDBC驱动措施.jar文件

2.下载和安装MySQL数据库处事器

3.下载和安装JBoss 4.0应用措施处事器

开拓一个Java应用措施,我们将利用它和XSLT把WebLogic陈设文件转换为JBoss陈设文件。该陈设文件也可以利用XSLT东西举办转换。

概述

在不举办修改的时候,WebLogic中开拓的应用措施是不能陈设在JBoss中的。JBoss应用措施的陈设文件与WebLogic的陈设文件差异。在本文中,我们将把一个在WebLogic中开拓的实体(entity)EJB应用措施示例迁移到JBoss中,迁移的要领是把WebLogic陈设文件转换为JBoss陈设文件。

示例应用措施包括一个Catalog实体EJB。该EJB的bean类(CatalogBean.java)、长途接口(Catalog.java)、和home接口(CatalogHome.java)都在本文下载链接的weblogic-jboss-resources.zip示例文件中。我们将利用MySQL开放源代码数据库来设置JBoss应用措施。把WebLogic EJB应用措施陈设到JBoss中并不需要修改实体EJB类,只需要修改该EJB的陈设文件。

设置JBoss和MySQL

MySQL是一个开放源代码的数据库,它适合于开放源代码的项目和小型组织。为了设置JBoss和MySQL数据库需要举办下面一些修改。

设置JBoss类路径

为了利用JBoss 4.0和MySQL,我们首先要把驱动措施类.jar文件(mysql-connector-java-3.0.9-stable-bin.jar)复制到<JBoss>/server/default/lib目次中。个中的<JBoss>是JBoss应用措施处事器安装的目次。lib目次的.jar和.zip文件都包括在JBoss处事器的Classpath(类路径)中。

设置MySQL数据源

为了利用MySQL数据源,需要把<JBoss>/docs/examples/jca/mysql-ds.xml复制到<JBoss>/server/default/deploy目次中。当JBoss处事器启动的时候,deploy目次中的数据源设置文件就被陈设好了。依照下面的步调修改mysql-ds.xml设置文件:

· 把<driver-class/>配置为com.mysql.jdbc.Driver,<connection-url/>配置为jdbc:mysql://localhost/<database>,个中<database>是MySQL数据库。<database>的值可以配置为test,它是MySQL中的示例数据库。

· 在jndi-name元素中指定命据源的JNDI名称。

· 指定毗连MySQL数据库的用户名和暗码。在默认环境下,root用户名不需要暗码。

· 把type-mapping元素指定为mySQL。type-mapping元素指定了standardjbosscmp-jdbc.xml陈设文件中预界说的数据库范例映射干系。对付MySQL数据库来说,范例映射是mySQL。

修悔改的mysql-ds.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost/test</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password></password>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>

我们可以通过提供数据源JNDI名称从数据源获取一个JDBC毗连:

InitialContext initialContext = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)
initialContext.lookup("java:/MySqlDS");
java.sql.Connection conn = ds.getConnection();


#p#副标题#e#

设置登录信息

此刻我们按照MySQL数据库配置来修改login-config.xml设置文件。为了登录到MySQL数据库,应用措施计策MySqlDbRealm是须要的。给login-config.xml添加下面的<application-policy/>元素:

<application-policy name = "MySqlDbRealm">
<authentication>
<login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name ="principal"></module-option>
<module-option name ="userName">root</module-option>
<module-option name ="password"></module-option>
<module-option name ="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=MySqlDS
</module-option>
</login-module>
</authentication>
</application-policy>

#p#分页标题#e#

通过修改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">

#p#副标题#e#

我们通过一个自界说的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。

weblogic-cmp-rdbms-jar.xml的根元素是weblogic-rdbms-jar;jbosscmp-jdbc.xml的根元素是jbosscmp-jdbc。weblogic-cmp-rdbms-jar.xml文件中指定毗连到数据库的数据源的data-source-name元素与jbosscmp-jdbc.xml陈设文件中的datasource元素成果相当。weblogic-cmp-rdbms-jar.xml指定实体EJB CMP字段与数据库表的列之间映射干系的field-map元素与jbosscmp-jdbc.xml中的cmp-field元素成果相当。weblogic-cmp-rdbms-jar.xml中指定列名的dbms-column元素与jbosscmp-jdbc.xml中的column-name元素成果相当。weblogic-cmp-rdbms-jar.xml陈设文件的DOCTYPE是:

#p#分页标题#e#

<!DOCTYPE weblogic-rdbms-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 8.1.0 EJB RDBMS Persistence//EN'
'http://www.bea.com/servers/wls810/dtd/weblogic-rdbms20-persistence-810.dtd'>
jbosscmp-jdbc.xml的DOCTYPE是:
<!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 4.0//EN"
"http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_4_0.dtd">

我们利用自界说的XSLT样式表jbosscmp-jdbc.xslt(包括在示例代码中)把陈设文件weblogic-cmp-rdbms-jar.xml转换为jbosscmp-jdbc.xml。该样式表成立jbosscmp-jdbc.xml,它是与WebLogic的weblogic-cmp-rdbms-jar.xml陈设文件成果相当的JBoss文件。jbosscmp-jdbc.xml也包括下载在.zip文件中。

WebLogic陈设文件的DTD与JBoss陈设文件的差异。利用自界说的XSLT的时候,假如陈设文件中还呈现了一些特另外元素,大概还需要做进一步的修改,可以把WebLogic陈设文件转换为JBoss陈设文件。在下面的部门中,我们将在JBoss处事器上陈设这个EJB应用措施。

在JBoss中陈设该EJB应用措施

把WebLogic EJB陈设文件转换为JBoss陈设文件之后,你必需成立一个心的EJB .jar文件以陈设到JBoss处事器上。该JBoss .jar文件的布局如下:

META-INF/
ejb-jar.xml
jboss.xml
jbosscmp-jdbc.xml
CatalogBean.class
Catalog.class
CatalogHome.class

编译示例EJB类和接口:

java Catalog.java CatalogBean.java CatalogHome.java

把JBoss陈设文件ejb-jar.xml、jboss.xml和jbosscmp-jdbc.xml复制到META-INF目次中。利用jar东西从JBoss陈设文件、类和接口中成立一个.jar文件。

jar cf CatalogEJB.jar CatalogBean.class
Catalog.class CatalogHome.class META-INF/*.xml

陈设该JBoss实体EJB应用措施的进程是,把该.jar文件(EntityEJB.jar)复制到<JBoss>\server\default\deploy目次(个中<JBoss>是JBoss安装的目次)中。当处事器启动的时候,该EJB应用措施就在JBoss处事器上面陈设好了。JBoss应用措施处事器中的陈设(deploy)目次与WebLogic应用措施处事器中的应用措施(applications)目次对应。

结论

通过转换陈设文件可以把WebLogic中陈设的实体EJB应用措施迁移到JBoss应用措施处事器上。利用相似的步调,通过把weblogic.xml 陈设文件转换为jboss-web.xml ,也可以把WebLogic J2EE Web应用措施迁移到JBoss上。

 

    关键字:

天才代写-代写联系方式