亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

把WebLogic EJB程序遷移到JBoss上

2024-09-05 00:21:34
字體:
來源:轉載
供稿:網友

  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"?>
 ?。糳atasources>
  <local-tx-datasource>
 ?。糺ndi-name>MySqlDS</jndi-name>
 ?。糲onnection-url>jdbc:mysql://localhost/test</connection-url>
  <driver-class>com.mysql.jdbc.Driver</driver-class>
 ?。紆ser-name>root</user-name>
 ?。紁assword></password>
 ?。糾etadata>
  <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/>元素:

 ?。糰pplication-policy name = "MySqlDbRealm">
  <authentication>
 ?。糽ogin-module code =
  "org.jboss.resource.security.ConfiguredIdentityLoginModule"
  flag = "required">
 ?。糾odule-option name ="principal"></module-option>
 ?。糾odule-option name ="userName">root</module-option>
 ?。糾odule-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保留字不同。

   轉換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。

  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是:

 ?。?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上。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最猛黑人xxxx黑人猛叫黄| 亚洲天堂网在线观看| 亚洲黄色www网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产欧美欧洲在线观看| 成人精品一区二区三区电影黑人| 91美女片黄在线观看游戏| 欧美一区二区大胆人体摄影专业网站| 69精品小视频| 91午夜理伦私人影院| 国产精品久久一区主播| 欧美一级黑人aaaaaaa做受| 亚洲精品动漫久久久久| 欧美性猛交xxxx免费看久久久| 久久久久国产精品www| 在线看福利67194| 成人乱人伦精品视频在线观看| 久热精品在线视频| 亚洲成年人在线| 国产视频一区在线| 狠狠躁18三区二区一区| 亚洲激情视频在线播放| 欧美日韩中文字幕综合视频| 久久国产精品久久久久久久久久| www国产精品视频| 97人人模人人爽人人喊中文字| 国产热re99久久6国产精品| 欧美精品一区在线播放| 成人伊人精品色xxxx视频| 91精品国产色综合久久不卡98口| 亚洲国产小视频在线观看| 国内精品国产三级国产在线专| 国产精品成人一区二区| 久久99热这里只有精品国产| 国产精品国产三级国产aⅴ浪潮| 蜜月aⅴ免费一区二区三区| 日韩一区二区三区xxxx| 精品自拍视频在线观看| 国产精品va在线播放| 亚洲在线观看视频网站| 欧洲美女7788成人免费视频| 欧美激情精品久久久久久久变态| 国产精品自拍偷拍| 国产精品久久久久久久app| 久久影视三级福利片| 麻豆成人在线看| 国产美女精彩久久| 91精品国产91久久久久久吃药| 亚洲人免费视频| 亚洲国产另类久久精品| 97免费视频在线| 福利视频第一区| 亚洲国产小视频| 97免费视频在线| 免费91麻豆精品国产自产在线观看| 欧美成人在线影院| 亚洲日本aⅴ片在线观看香蕉| 欧美日韩亚洲国产一区| 国产欧美欧洲在线观看| 久久伊人精品天天| 国产亚洲精品一区二区| 国产亚洲欧美日韩美女| 久久久久久中文字幕| 国产精品美女www| 欧洲一区二区视频| 欧美特级www| 正在播放欧美一区| 不卡中文字幕av| 国产亚洲精品一区二555| 97久久超碰福利国产精品…| 欧美一区视频在线| 懂色av中文一区二区三区天美| 日韩欧美福利视频| 精品久久久在线观看| 欧美成在线观看| 亚洲人成电影网站色www| 欧美乱大交xxxxx另类电影| 欧美日韩精品二区| 国产精品爱久久久久久久| 狠狠色香婷婷久久亚洲精品| 国产精品日韩欧美综合| 欧美激情国产高清| 在线观看久久久久久| 奇米4444一区二区三区| 国产一区二区日韩| 久久色精品视频| 国产午夜精品一区二区三区| 日韩欧美亚洲范冰冰与中字| 久久精品久久久久电影| 日韩中文字幕视频在线| 欧美午夜激情在线| 欧美性极品xxxx做受| 一区二区三区视频观看| 亚洲成色777777在线观看影院| 九九热r在线视频精品| 精品综合久久久久久97| 日韩中文字幕国产精品| 九九精品视频在线观看| 国产精品久久久久久久久久新婚| 狠狠色香婷婷久久亚洲精品| 日韩电影在线观看中文字幕| 亚洲精品福利在线| 国产精品久久久久久久久久久新郎| 97香蕉超级碰碰久久免费的优势| 国内精久久久久久久久久人| 久久久999精品| 欧美福利小视频| 精品亚洲va在线va天堂资源站| 精品国产视频在线| 国产69久久精品成人| 91超碰caoporn97人人| 大量国产精品视频| 欧美大片在线看免费观看| 久久久综合免费视频| 亚洲自拍偷拍第一页| 久久天天躁狠狠躁夜夜躁| 欧洲s码亚洲m码精品一区| 揄拍成人国产精品视频| 国产精品色婷婷视频| 欧洲亚洲妇女av| 久久久久久久久网站| 欧美激情中文字幕在线| 色av中文字幕一区| 欧美精品www| 2023亚洲男人天堂| 国产日韩在线精品av| 成人高h视频在线| 亚洲亚裔videos黑人hd| 亚洲欧美视频在线| 亚洲一区二区免费在线| 麻豆一区二区在线观看| 成人黄色片网站| 亚洲精品国产精品国产自| 日本高清视频一区| 精品久久中文字幕| 国产精品美女无圣光视频| 日日骚久久av| 136fldh精品导航福利| 97福利一区二区| 日韩欧美国产黄色| 久热99视频在线观看| 精品国内产的精品视频在线观看| 国产激情999| 国产精品美女在线| 国产三级精品网站| 韩国视频理论视频久久| 亚洲电影免费观看高清完整版| 欧美成aaa人片在线观看蜜臀| 欧美成人在线影院| 韩国19禁主播vip福利视频| 亚洲国产日韩欧美综合久久| 亚洲欧美在线第一页| 精品美女国产在线| 伊是香蕉大人久久| 中文字幕日本精品| 欧美日韩黄色大片| 精品国产精品三级精品av网址| 亚洲欧洲av一区二区| 色哟哟网站入口亚洲精品| 精品日本高清在线播放| 欧美日韩成人在线视频| 色一情一乱一区二区| 亚洲精品国精品久久99热一| 成人黄色短视频在线观看|