把WebLogic EJB程序迁移到JBoss上-Java基础-Java-编程开发

来源:互联网 发布:毒舌电影被禁 知乎 编辑:程序博客网 时间:2024/05/01 11:40
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

  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();

  配置登录信息

   现在我们根据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>

[1][2]

原创粉丝点击