在J
EE項目的開發階段
開發人員通常使用的是JBoss開源應用服務器
而在生產階段
商業應用服務器BEA WebLogic Server因其增強的特性成為不錯的選擇
遺憾的是
在JBoss中開發的應用程序不能在WebLogic Server上直接部署
需要進行修改
原因是WebLogic Server的部署描述符與JBoss的部署描述符不同
將應用程序遷移到WebLogic上的方法是把特定於供應商的部署描述符轉換為WebLogic部署描述符
在本文中
我們將把一個在JBoss中開發的EJB應用程序遷移到WebLogic應用服務器上
其中使用的數據庫是MySQL
初步安裝 下載和安裝BEA WebLogic Server(/framework
jsp?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類(CatalogBean
java)
遠程接口(Catalog
java)和home接口(CatalogHome
java)顯示在清單
和清單
中
把JBoss EJB應用程序部署到WebLogic中並不需要修改實體EJB類
只需要修改該EJB的部署描述符
清單
CatalogBean
java
import javax
ejb
*;
abstract public class CatalogBean implements EntityBean {
private EntityContext ctx;
public CatalogBean() {};
public void setEntityContext(EntityContext ctx) {
this
ctx = ctx;
}
public void unsetEntityContext() {
this
ctx = 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)
{
}
}
清單
Catalog
java
import java
rmi
RemoteException;
import javax
ejb
*;
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;
}
清單
CatalogHome
java
import javax
ejb
CreateException;
import javax
ejb
EJBHome;
import javax
ejb
FinderException;
import java
rmi
RemoteException;
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文件(mysql
connector
java
ga
bin
jar)添加到示例服務器的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(數據庫類型)
選擇MySQL
s 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驅動程序com
mysql
jdbc
Driver
該驅動程序用於建立與MySQL數據庫的連接
在URL欄指定jdbc:mysql://localhost/test作為連接數據庫的URL
單擊Test Driver Configuration按鈕
測試JDBC到數據庫的連接
如果已建立連接
會顯示內容為
connection successful
的消息
在Create and deploy框中
選擇將要部署連接池的服務器
單擊Create and deploy按鈕
部署JDBC連接池到服務器上
配置好的連接會部署到示例服務器上
同時該連接池的節點被添加到JDBC>Connection Pools節點中
要修改連接池配置
選擇該連接池節點
並修改各個選項卡上的設置
General
Target and Deploy
Monitoring
Control
Testing
Connections
接下來
要配置WebLogic Server上的數據源
右擊Services>JDBC節點
選擇Configure a new JDBCTxDataSource
指定一個數據源名稱
在JNDI Name欄為數據源指定JNDI名稱
例如MySQLDS
單擊Continue按鈕繼續
在Connect to connection pool框中
從連接池列表中選擇前一節所配置的連接池
單擊Continue按鈕繼續
在Target the data source框中選擇一個服務器作為數據源的目標服務器
然後單擊Create按鈕
配置好的數據源會部署到示例服務器上
該數據源的節點被添加到數據源節點中
要修改數據源
選擇該數據源的節點
並修改各個選項卡上的設置
包括Configuration
Target和Deploy
該數據源可以通過在數據源配置中所指定的JNDI名稱MySQLDS來獲取
轉換JBoss EJB應用程序 前一節已經在WebLogic Server上配置了MySQL數據庫
下面我們將把JBoss EJB應用程序轉換成WebLogic EJB應用程序
這涉及到部署描述符的轉換
JBoss實體EJB應用程序由以下部分組成
EJB部署描述符(ejb
jar
xml
jboss
xml和jbosscmp
jdbc
xml)
bean類(CatalogBean
java)
遠程接口(Catalog
java)和home接口(CatalogHome
java)
要在JBoss服務器上部署實體EJB
應該創建一個EJB JAR文件
該文件結構如下
META
INF/
ejb
jar
xml
jboss
xml
jbosscmp
jdbc
xml
CatalogBean
class
Catalog
class
CatalogHome
class
部署描述符中指定了EJB的結構化信息和應用程序匯編信息
結構化信息中包含將這個EJB指定為會話EJB還是實體EJB
ejb
jar
xml部署描述符中的應用程序匯編信息是在assembly
descriptor元素中指定的
JBoss中實體EJB的部署描述符為ejb
jar
xml
jboss
xml和jbosscmp
jdbc
xml
而WebLogic中對應的部署描述符依次是ejb
jar
xml
weblogic
ejb
jar
xml和weblogic
cmp
rdbms
jar
xml
下面我們將介紹這些文件間的轉換
ejb
jar
xml部署描述符對於WebLogic和JBoss是相同的
清單
顯示了示例實體EJB的該部署描述符
其中定義了一個名為Catalog的實體EJB
它包含
個CMP字段
catalogId
journal和publisher
主鍵字段是catalogId
清單
ejb
jar
xml
<?xml version=
?>
<!DOCTYPE ejb
jar PUBLIC
//Sun Microsystems
Inc
//DTD Enterprise JavaBeans
//EN
jar_
_
dtd
>
<ejb
jar>
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28871.html