JBossEJB应用程序迁移到WebLogic上

文章作者 100test 发表时间 2007:03:26 18:00:44
来源 100Test.Com百考试题网


在J2EE项目的开发阶段,开发人员通常使用的是JBoss开源应用服务器。而在生产阶段,商业应用服务器BEA WebLogic Server因其增强的特性成为不错的选择。遗憾的是,在JBoss中开发的应用程序不能在WebLogic Server上直接部署,需要进行修改。
  
  原因是WebLogic Server的部署描述符与JBoss的部署描述符不同。将应用程序迁移到WebLogic上的方法是把特定于供应商的部署描述符转换为WebLogic部署描述符。在本文中,我们将把一个在JBoss中开发的EJB应用程序迁移到WebLogic应用服务器上,其中使用的数据库是MySQL。
  
  初步安装
  
  下载和安装BEA WebLogic Server(www.bea.com/framework.jsp?CNT=overview.htm &.FP=/content/products/weblogic/server)。创建一个服务器域。下载MySQL JDBC驱动程序jar文件(www.mysql.com/products/connector/j/)和MySQL数据库服务器(www.mysql.com/products/mysql/)。开发一个Java应用程序或获取一个XSLT实用工具,使用XSLT把JBoss部署描述符转换为WebLogic部署描述符。
  
  在部署描述符转换前,在JBoss中开发的应用程序不能在WebLogic中部署。在本文中,我们将通过转换部署描述符的方法,把一个在JBoss中开发的实体EJB应用程序示例迁移到WebLogic应用服务器上。
  
  示例应用程序包含一个Catalog实体EJB。清单1中显示的是该EJB的bean类(CatalogBean.java)。远程接口(Catalog.java)和home接口(CatalogHome.java)显示在清单2和清单3中。把JBoss EJB应用程序部署到WebLogic中并不需要修改实体EJB类,只需要修改该EJB的部署描述符。
  
  清单1: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)
  {
  
  }
  
  }
  
  清单2: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.
  
  }
  清单3: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-3.0.16-ga-bin.jar)添加到示例服务器的CLASSPATH变量中。WebLogic Server的CLASSPATH变量是在\user_projects\domains\mydomain\startWebLogic脚本文件中进行设置的。双击该脚本文件,启动WebLogic示例服务器。服务器在端口7001启动。通过URL http://localhost:7001/console来登录WebLogic管理控制台(Administration Console)。在显示出来的管理控制台登录页面上输入用户名和口令,就可以登录到管理控制台。
  
  在管理控制台中选择Services>JDBC节点。要配置JDBC连接池,右击Connection Pools节点,选择Configure a new JDBCConnectionPool。在Choose database frame displayed中选择MySQL作为Database Type(数据库类型),选择MySQLs Driver (Type 4)作为Database Driver(数据库驱动程序)。单击Continue按钮。接着指定JDBC连接的连接属性。在Database Name栏指定示例MySQL数据库的名字test,在Host Name栏指定localhost,在Database User Name栏指定root。用root用户名登录MySQL数据库不需要口令,但WebLogic Server需要为用户名指定一个口令。单击Continue按钮继续。

相关文章


Jboss中Myfaces与Sitemesh的集成
JBoss4.0简化了中间件的开发
JBossEJB应用程序迁移到WebLogic上
在Jboss下WebService调用EJB二
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛