Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>环境配置>>J2EE应用服务器与JBuilder集成的实现
J2EE应用服务器与JBuilder集成的实现
2005-07-22   来源:tongtech.com  作者:杨光 雷益鹏

摘要:本文以国产J2EE应用服务器TongWeb为例,阐述如何将应用服务器与JBuilder集成,使JBuilder开发环境能支持第三方的应用服务器,为开发人员提供一个集成第三方应用服务器的JBuilder开发环境,以便开发人员能通过Jbuilder开发、部署和调试面向特定应用服务器的J2EE应用。

背景知识
  对于广大的J2EE应用开发人员来说,一个强大而高效的Java开发环境是必不可少的。JBuilder是一个优秀的JAVA 集成开发环境,它能够集成Weblogic, WebSphere,Borland Enterprise Server等应用服务器,使开发人员可以快速开发和分发应用程序到这些J2EE平台应用服务器。
  除了目前JBuilder支持的应用服务器外,还有一些受用户喜欢,并正在使用的应用服务器产品。对于习惯于使用JBuilder的开发人员来说,他们特别希望这些应用服务器也能被JBuilder所支持,以便在开发过程中应用JBuilder的强大功能。因此,将特定的应用服务器与JBuilder集成,是一件非常有意义的事情。
  为此,我们着手实施了这项工作,通过开发TongWebOpenTools插件,成功地将国产应用服务器TongWeb集成到JBuilder开发环境中,现将实现方法描述如下。

JBuilder的Open Tools框架
  首先介绍一下JBuilder提供的一种允许第三方扩展IDE的机制,即Open Tools框架,JBuilder同时提供了实现该框架的接口 — OpenTools API。

1. Open Tools框架
  在OpenTools 框架中,能对JBuilder的很多功能进行扩展,对J2EE应用服务器支持的扩展就是其中之一。在JBuilder7.0以前的版本中,在对J2EE应用服务器支持的扩展方面,提供了AppServer机制,我们可以利用这种机制将第三方的J2EE应用服务器集成到JBuilder中,达到扩展JBuilder所能支持的应用服务器的目的。在JBuilder7.0/8.0版本中,已经不采用AppServer机制了,而是提供了Server Plugin机制。为了将已经在7.0以前版本中扩展的应用服务器继承过来,JBuilder还提供了一种Legacy机制,可以将基于以前版本的JBuilder的应用服务器扩展集成到7.0/8.0版本中。此外,JBuilder还提供了一种Server Configuration机制,支持对应用服务器进行配置,并保存配置。
  针对目前使用最广泛的JBuilder7.0及以上版本,为了实现对一个新的第三方J2EE应用服务器的支持,应该采用Server Plugin和Server Configuration机制。因此,对这两种机制,在这里有必要简要介绍一下。

(1) Server Plugin机制
   Server Plugin主要涉及三个方面的内容,Server,Service,Plugin。Server指的是一些特定版本的应用服务器,例如Borland Enterprise Server 5.0,Tomcat 4.0,WebLogic6.1等。Service是应用服务器所支持的特性,例如EJB, web application (JSP and Servlet), JMS, deployment等。Plugin指的是一些classes,通过这些classes,可以使Server和Service在JBuilder中注册,以便能在JBuilder的集成开发环境中被使用。因此,Server Plugin机制主要  包含了Server、Services和ServerLanucher API。类图如下:

                            图 1 Server Plugin机制类图

  每个Server类的子类实现都代表一个应用服务器,该子类可以根据情况包含不同的Services。支持的Services包括:ClientJarService、EjbService、JspServletService、DeployService等等。
  在JBuilder启动时, Server类的子类能够通过工具类ServerManager将自己及自己支持的Services注册到JBuilder中。该注册过程位于必须实现的方法initOpenTool()中。方法initOpenTool()是一个很特殊的方法,它不是由任何接口或虚类指定,但任何想接入JBuilder中的插件都必须提供该方法来将自己注册到JBuilder中。
  JBuilder 将根据是否提供该方法来自动发现第三方提供的插件,并自动将其按插件方式载入。
  ServerLanucher则是支持Server 启动的类,能提供Server 启动所需的各种信息,并且提供了在Server启动和停止的各个阶段插入代码的接口。它由Server来创建。

(2) Server Configuration机制
  在JBuilder中使用任何一个应用服务器,都必须先进行配置。JBuilder启动后,通过JBuilder菜单中的Tools->Configure Servers,可打开Configure Servers对话框。在该对话框中可以看到,左边是Server列表栏,右边是Server的常规配置信息和定制的配置信息。当一个Server的OpenTool通过ServerManager实现了注册,这个Server将出现在Server列表栏中。选择Server,并对Server进行配置后,注册的Server就可以在JBuilder中使用了。这一配置机制就是JBuilder提供的Server Configuration机制。该机制能将配置的信息保存起来,下次启动JBuilder时,它就能读取先前的配置,并根据该配置查找类库。如果找不到匹配的Server库(比如已经删除),则该Server在对话框的Server列表栏中显示为红色。

              图 2 Server配置界面的类图

2. OpenTools API
  在OpenTools框架中,和集成J2EE应用服务器相关的API都在包com.borland.jbuilder和包com.borland.primetime中,下面我就其中主要的包进行一下介绍。

(1) com.borland.jbuilder中的包
com.borland.jbuilder.server: 主要用于Server和Services的注册。
com.borland.jbuilder.enterprise.ejb: 主要用于支持JBuilder7.0以前版本的AppServer机制,还用于生成选定的应用服务器的部署描述符。
com.borland.jbuilder.enterprise: 主要用于Server的JDK设置。
com.borland.jbuilder.runtime.servlet:主要用于Servlet Service的实现。

(2) com.borland.primetime中的包
com.borland.primetime.node: 主要用于对项目和文件节点的操作。
com.borland.primetime.properties: 主要用于属性设置。
com.borland.primetime.ide: 主要用于实现图形界面。

TongWeb Open Tools的实现
  TongWeb Open Tools是为了将应用服务器TongWeb集成到JBuilder而开发的,它是JBuilder OpenTools框架的一个具体实现。目前,已经完全支持在JBuilder中基于TongWeb 应用服务器进行EJB和Jsp/Servlet的开发、部署、运行以及动态调试。
  为了实现上述功能,我们需要解决下列问题:
1. Server管理,包括Server的注册载入,Server的启动等
2. Ejb部署描述符的生成
3. Jsp/Servlet 的编译
4. 动态部署
5. 动态调试
6. 配置管理,包括Project Properties,Configure Servers等

  TongWeb Open Tools可以划分为6个模块,即Server模块,Generic deploy code(部署代码生成)模块,JSP/Servlet Compiler模块,Deploy(动态部署)模块,Configure模块和动态调试模块。各个模块的关系图如下, 其中白色为外部系统。

             图 3 TongWeb Open Tools模块关系图

1. Server模块
  Server模块负责注册Server及Server提供的各种服务(services)、提供Server启动时所需的各种参数。
  Server模块在JBuilder启动时由JBuilder Opentools 框架提供的ServerManager注册到JBuilder中。

2. Generic deploy code(部署代码生成)模块
  部署代码生成模块负责生成TongWeb EJB部署描述符(包括ejb-jar.xml、teas-ejb-jar.xml)和部署代码(包括stub/skeleton及实体Bean的O/R映射代码jorm),并将所有生成的代码和EJB本身打包成可部署到TongWeb3.4上的EJB jar包。
  在JBuilder中,EJB部署描述符的生成原理是:在创建EJB工程及设计EJB的过程中,JBuilder将自动生成Jbuilder特定的部署描述符,然后JBuilder将JBuilder特定的部署描述符转换成选定的应用服务器的部署描述符。该转换是针对选定的应用服务器特定的部署描述符而言,对于J2EE标准的ejb-jar.xml则不需要转换。这个转换工作,要由选定的应用服务器的Opentools来实现。因此,TongWeb Open Tools中,我们设计和实现了一个特定的类来完成这个转换。
  对于部署代码的生成和最终的打包,则是调用了TongWeb服务器的工具GenIC来完成。

3. JSP/Servlet Compiler模块
  JSP/Servlet Compiler模块负责对JSP/Servlet的编译,并将所有生成的代码打成war包。为了能实现对JSP/Servlet的编译,并生成可部署的war包,需要通过对OpenTools API的JspCompiler和JspSourceBridge进行扩展。

4. Deploy(动态部署)模块
  通过调用TongWeb服务器的工具TeasAdm,动态部署模块实现了将EJB动态的部署到运行中的TongWeb3.4服务器,重新部署,取消部署,列出可部署的jar包等功能。

5. Configure模块
  Configure模块是用户配置上述几个模块所需参数的图形界面。在JBuilder中,参数的配置和对参数的使用是分离的。为了实现这种分离,它通过静态类PropertyGroup及其子类来进行参数的存储工作。配置好的参数写入静态类PropertyGroup中,当其它模块需要使用这些参数时就从静态类PropertyGroup中获取。静态类PropertyGroup从作用上看类似一个配置文件,但它是写在内存中的,速度较快。

使用TongWeb Open Tools
  TongWeb Open Tools的最终产品是一个TongWebOpenTool.jar文件,只需要将这个文件拷贝到 <JBuilder-安装目录>\lib\ext目录下,就完成了产品的安装。
  完成产品安装后,在JBuilder中就可以轻松的开发,部署应用程序到TongWeb3.4应用服务器上了,下面将用几张图来简要描述安装了TongWeb Open Tools插件的JBuilder对TongWeb3.4应用服务器的支持。

(1) 配置TongWeb应用服务器
当TongWeb Open Tools安装后,启动JBuilder后,选择JBuilder菜单中的Tools->Configure Servers,可以看到TongWeb 应用服务器已经出现在左侧的服务器列表中了,选则TongWeb应用服务器后,就可以对它进行配置。

 
              图 4 配置服务器

(2) 部署EJB
选择菜单中的deploy,对 EJB进行部署,在JBuilder的控制台上会显示提示信息,当部署成功,将显示Succeeded: Dedeploy --- xxx.jar。

 
              图 5部署EJB

结束语
  如何向用户提供方便高效的开发工具,是国产应用服务器厂商面临的一个重要问题。对TongWeb来说,通过开发TongWeb Open Tools,使JBuilder支持面向TongWeb的全过程开发,既充分利用了JBuilder的强大功能,又解决了国产应用服务器的开发工具支持问题,不失为一种比较好的策略。


  --相关文章--
· Resin的使用和安装 (2006-04-04)
· Java环境配置的Classpath使用故障实例 (2005-10-16)
· Windows下JAVA环境变量的设置祥解 (2005-08-29)
· Linux下jsp开发环境,apache,tomcat服务器配置过程 (2005-08-08)
· JBuilder2005+JBOSS+Oracle9i环境配置 (2005-08-08)
· 编程者入门:谈Servlet/JSP的配置详解 (2005-07-26)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接