熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

JBoss EJB應用程序遷移到WebLogic上

2013-11-23 20:40:19  來源: Java開源技術 

  在JEE項目的開發階段開發人員通常使用的是JBoss開源應用服務器而在生產階段商業應用服務器BEA WebLogic Server因其增強的特性成為不錯的選擇遺憾的是在JBoss中開發的應用程序不能在WebLogic Server上直接部署需要進行修改
  
  原因是WebLogic Server的部署描述符與JBoss的部署描述符不同將應用程序遷移到WebLogic上的方法是把特定於供應商的部署描述符轉換為WebLogic部署描述符在本文中我們將把一個在JBoss中開發的EJB應用程序遷移到WebLogic應用服務器上其中使用的數據庫是MySQL
  
  初步安裝
  
  下載和安裝BEA WebLogic Server(/frameworkjsp?CNT= &FP=/content/products/weblogic/server)創建一個服務器域下載MySQL JDBC驅動程序jar文件(/products/connector/j/)和MySQL數據庫服務器(/products/mysql/)開發一個Java應用程序或獲取一個XSLT實用工具使用XSLT把JBoss部署描述符轉換為WebLogic部署描述符
  
  在部署描述符轉換前在JBoss中開發的應用程序不能在WebLogic中部署在本文中我們將通過轉換部署描述符的方法把一個在JBoss中開發的實體EJB應用程序示例遷移到WebLogic應用服務器上
  
  示例應用程序包含一個Catalog實體EJB清單中顯示的是該EJB的bean類(CatalogBeanjava)遠程接口(Catalogjava)和home接口(CatalogHomejava)顯示在清單和清單把JBoss EJB應用程序部署到WebLogic中並不需要修改實體EJB類只需要修改該EJB的部署描述符
  
  清單CatalogBeanjava
  
  import javaxejb*;
  
  abstract public class CatalogBean implements EntityBean {
  
  private EntityContext ctx;
  
  public CatalogBean() {};
  
  public void setEntityContext(EntityContext ctx) {
  
  thisctx = ctx;
  }
  
  public void unsetEntityContext() {
  thisctx = null;
  
  }
  
  abstract public String getCatalogId();
  abstract public void setCatalogId(String catalogId);
  
  abstract public String getJournal();
  abstract public void setJournal(String journal);
  
  abstract public String getPublisher();
  abstract public void setPublisher(String publisher);
  
  public void ejbActivate() {
  
  }
  
  public void ejbPassivate() {
  
  }
  
  public void ejbLoad() {
  
  }
  
  public void ejbStore() {
  
  }
  
  public void ejbRemove()
  throws RemoveException
  {
  
  }
  
  public String ejbCreate(String catalogId)
  throws CreateException
  {
  
  setCatalogId(catalogId);
  
  return null;
  }
  
  public void ejbPostCreate(String catalogId)
  {
  
  }
  
  }
  
  清單Catalogjava
  
  import javarmiRemoteException;
  import javaxejb*;
  
  public interface Catalog extends EJBObject {
  
  public String getCatalogId()
  throws RemoteException;
  
  public String getJournal()
  throws RemoteException;
  
  public String getPublisher()
  throws RemoteException;
  
  public void setJournal(String journal)
  throws RemoteException;
  
  public void setPublisher(String publisher)
  throws RemoteException;
  
  }
  清單CatalogHomejava
  
  import javaxejbCreateException;
  import javaxejbEJBHome;
  import javaxejbFinderException;
  import javarmiRemoteException;
  
  public interface CatalogHome extends EJBHome {
  
  public Catalog create(String catalogId)
  throws CreateException RemoteException;
  
  public Catalog findByPrimaryKey(String catalogId)
  throws FinderException RemoteException;
  
  }
  配置WebLogic JDBC
  
  本小節描述在WebLogic Server上配置JDBC連接和MySQL數據庫的方法首先配置一個JDBC連接池接下來配置用於訪問JDBC連接池的JNDI數據源然後把MySQL數據庫驅動程序jar文件(mysqlconnectorjavagabinjar)添加到示例服務器的CLASSPATH變量中WebLogic Server的CLASSPATH變量是在<BEA>\user_projects\domains\mydomain\startWebLogic腳本文件中進行設置的雙擊該腳本文件啟動WebLogic示例服務器服務器在端口啟動通過//localhost:/console來登錄WebLogic管理控制台(Administration Console)在顯示出來的管理控制台登錄頁面上輸入用戶名和口令就可以登錄到管理控制台
  
  在管理控制台中選擇Services>JDBC節點要配置JDBC連接池右擊Connection Pools節點選擇Configure a new JDBCConnectionPool在Choose database frame displayed中選擇MySQL作為Database Type(數據庫類型)選擇MySQLs Driver (Type )作為Database Driver(數據庫驅動程序)單擊Continue按鈕接著指定JDBC連接的連接屬性在Database Name欄指定示例MySQL數據庫的名字test在Host Name欄指定localhost在Database User Name欄指定root用root用戶名登錄MySQL數據庫不需要口令但WebLogic Server需要為用戶名指定一個口令單擊Continue按鈕繼續
  
  在Test database connection框中的Driver Classname欄指定MySQL驅動程序commysqljdbcDriver該驅動程序用於建立與MySQL數據庫的連接在URL欄指定jdbc:mysql://localhost/test作為連接數據庫的URL單擊Test Driver Configuration按鈕測試JDBC到數據庫的連接如果已建立連接會顯示內容為connection successful的消息在Create and deploy框中選擇將要部署連接池的服務器單擊Create and deploy按鈕部署JDBC連接池到服務器上配置好的連接會部署到示例服務器上同時該連接池的節點被添加到JDBC>Connection Pools節點中要修改連接池配置選擇該連接池節點並修改各個選項卡上的設置GeneralTarget and DeployMonitoringControlTestingConnections
  
  接下來要配置WebLogic Server上的數據源右擊Services>JDBC節點選擇Configure a new JDBCTxDataSource指定一個數據源名稱在JNDI Name欄為數據源指定JNDI名稱例如MySQLDS單擊Continue按鈕繼續在Connect to connection pool框中從連接池列表中選擇前一節所配置的連接池單擊Continue按鈕繼續在Target the data source框中選擇一個服務器作為數據源的目標服務器然後單擊Create按鈕配置好的數據源會部署到示例服務器上該數據源的節點被添加到數據源節點中要修改數據源選擇該數據源的節點並修改各個選項卡上的設置包括ConfigurationTarget和Deploy該數據源可以通過在數據源配置中所指定的JNDI名稱MySQLDS來獲取
  
  轉換JBoss EJB應用程序
  
  前一節已經在WebLogic Server上配置了MySQL數據庫下面我們將把JBoss EJB應用程序轉換成WebLogic EJB應用程序這涉及到部署描述符的轉換JBoss實體EJB應用程序由以下部分組成EJB部署描述符(ejbjarxmljbossxml和jbosscmpjdbcxml)bean類(CatalogBeanjava)遠程接口(Catalogjava)和home接口(CatalogHomejava)
  
  要在JBoss服務器上部署實體EJB應該創建一個EJB JAR文件該文件結構如下
  
  METAINF/
  ejbjarxml
  jbossxml
  jbosscmpjdbcxml
  CatalogBeanclass
  Catalogclass
  CatalogHomeclass
  部署描述符中指定了EJB的結構化信息和應用程序匯編信息結構化信息中包含將這個EJB指定為會話EJB還是實體EJBejbjarxml部署描述符中的應用程序匯編信息是在assemblydescriptor元素中指定的JBoss中實體EJB的部署描述符為ejbjarxmljbossxml和jbosscmpjdbcxml而WebLogic中對應的部署描述符依次是ejbjarxmlweblogicejbjarxml和weblogiccmprdbmsjarxml下面我們將介紹這些文件間的轉換
  
  ejbjarxml部署描述符對於WebLogic和JBoss是相同的清單顯示了示例實體EJB的該部署描述符其中定義了一個名為Catalog的實體EJB它包含個CMP字段catalogIdjournal和publisher主鍵字段是catalogId
  
  清單ejbjarxml
  
  <?xml version=?>
  <!DOCTYPE ejbjar PUBLIC
  //Sun Microsystems Inc//DTD Enterprise JavaBeans //EN
  jar__dtd>
  <ejbjar>

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28871.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.