把WebLogic EJB程序遷移到JBoss上 (1)

發表于:2007-06-10來源:作者:點擊數: 標簽:
WebLogic 服務器 是一款頂級的商業應用程序服務器。但是對于小規模的開發者來說,開發源代碼的、基于標準的應用程序服務器JBoss是可以用來替換類似WebLogic或 WebSphere 等商業應用程序服務器的。不幸的是,在WebLogic中開發的應用程序不能在JBoss中部署。JB

 

 

 

 

 

 

 

 

  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如下所示:

clearcase/" target="_blank" >cc66 width="90%" align=center bgColor=#dadacf border=1>
<?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>


  通過修改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保留字不同。


1 2 下一頁>>




原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97