您的位置:寻梦网首页编程乐园Java天地小龙亭之JSP实践之旅
小龙亭之JSP实践之旅
主页入门EJBJ2EE平台JSP编程译文工具JavaAppServerWeb数据库XML手记小亭

Java2实现Applet数字签名
企业级Java介绍
Java之教授篇
Java白皮书
JNDI技术白皮书
Servlet介绍
Servlet2.1规范
Java在C/S结构中的应用
Java中汉字问题分析与对策
利用Java实现视频点播服务器
Java多线程设计
Java反编译
java IDL技术
数据库缓冲池
ASP调用Servlet
Applet介绍
Applet和Servlet 4种通讯方法
Applet调用jdbc
XML+Servlet建在线系统
java数据库查询的表格显示
开发工具篇
Forte for Java介绍
Jbuilder4新功能
Jbuilder介绍
Jbuilder3测试报告
VAJ开发servlets

Jbuider4新特性介绍


2000-10-27· ilamei·YESKY

  2000年10月17下午在北京新世纪饭店世纪厅举行。此次发布会主要研讨了最新版的JAVA开发工具-Borland JBuilder4.0 和 最新的企业级应用服务器 -Inprise Application Server 4.1。 
  Inprise/Borland公司的代表在会上主要介绍了号称No.1的新一代纯Java开发工具JBuilder4.0。在Solaris, Linux, and Windows 98, NT, and 2000等系统中都有Jbuilder4的版本。Jbuilder4的是运行在JDK1.3版本上。有很好的调试能力,客户端的性能也有了很大的提高。
  Jbuider4有很多以前版本没有的新特性,另外还根据程序开发者的要求,在某些地方做了增强: 
  
  1、Web程序的开发,企业JavaBean和大程序的团队开发是Jbuider4新特性的重点。
  2、增强了开放的API工具,更易与开发者使用。
  3、增加了对应用服务器的支持
  4、对用户界面,特别是对File|Open菜单中的向导,做了重新的设计。
  5、增加了一些调试功能
  6对JdataStore和JDBC Explorer进行了改进,数据库的操作更简单。

下面详细的说明Jbuider4的新性能。

一、 Web应用程序的开发:
  Jbuilder4支持Web应用程序的开发,增加了对XML的支持,提供了更好的Servlet和JSP的支持。通过InternetBeans Express和一些组件,能够在Java和html之间进行无缝数据转换。
  Jbuilder4内置了Tomcat3.1,可以动态的调试Servlet和JSP程序。
  每一个Servlet都有一个别名(Servlet-name)和init()初始化函数的参数,能够离开SHTML独立执行。
  Jbuilder4提供了增强的JSP支持,很容易的就可以直接调试JSP源代码。
  提供了XML的支持。能够简单快速的编写XML文件。XML关键字的高亮度显示很容易的对整个XML文件的结构了如指掌。
  通过InternetBeans Express控件,可以动态的产生WEB页面的内容。

二、 企业JavaBeans
  在Jbuilder4中,可以更容易的创建(create)配置(deploy)企业JavaBean。提供了一系列的向导来进行创建,处理,配置企业JavaBean的流程。把IAS的配置描述编辑器集成到Jbuilder4的开发环境中(不过,并没有把IAS4.1内置到Jbuilder4中,需要另外下载安装)。Jbuilder4还支持BEA的WebLogic Server 5.1。
  Jbuider4的一个新的特性就是EJB Group功能。每一个EJB Group都代表了一个可配置的JAR文件。通过EJB Group,可以对已有的EJB在EJB Group之间进行移植。一个project工程中可以有多个EJB Group。
  Entity Bean Modeler可以创建一个映射到现存表的实体Entity Bean。可以产生所有必须的java代码,更新EJB Group中配置描述。在Jbuilder4中,可以:

  1、用EJB 向导创建Session Bean和Entity Bean
  2、用Entity Bean Modeler将Entity Bean映射到现有的table中。
  3、通过EJB Group向导创建EJB Group。这样,就可以在一个应用程序里面放多个的Enterprise JavaBean。
  4、可以将一个Enterprise JavaBean从一个EJB Group移植到另一个EJB Group
  5、一个应用程序里面可以有多个的EJB Group。
  6、用Make和Rebuild就可以自动的创建可配置的JAR文件。
  7、可以在node viewer中查看JAR的内容。
  8、通过Test Client wizard可以在本地的容器或者与EJB1.1兼容的应用服务器中测试Enterprise JavaBean。
  9、运行或调式EJB的时候会自动的配置EJB。

三、 支持应用服务器
  Jbuilder4允许选择支持的应用服务器。保持着对每个应用服务器的配置。在Project|Project Properties菜单中,run标签中的EJB标签。缺省的选择是IAS,但是 也可以在Jbuilder4的集成开发环境中直接使用BEA的WebLogic5.1。在tool|Enterprise Setup菜单中,选择Application Server标签,然后可以选择WebLogic5.1,并指定路径。
  也可以通过OpenTools API,插入其它的应用服务器。

四、 团队开发功能
  工程文件(*.jpr和*.jpx)可以分为两部分,private和shared。Windows, watch, breakpoints保存在private私有部分,而libraries和编译选项保存在公有shared部分。
  版本追踪和控制:Jbuilder4对每一个版本都提供更改的支持。要查看一个文件的版本信息,单击底部的histroy标签,里面有每个文件的历史修改记录。Jbuilder自动的保持着文件的备份。可以设定备份的个数。Histroy页面就用这些备份来管理着历史的修改记录。可以访问上一个版本文件。也可以查看两个版本之间做了哪些修改。
  Jbuilder4的企业版还提供了CVS(Concurrent Versions System并发版本系统)

五、 OpenTools API开放工具API
  增强了OpenTools API,使其更简单,更容易使用。可以做默认的path这样的小修改,也可以设计自己的向导这样的复杂的修改。

六、 运行和调试
  在Run|Configurations菜单中可以创建另外的配置项。
  调试的功能也显著的增强了,所有的调试列表都支持复选,在split view中可以看到数据可线程。可以将线程,断点的浮动窗口接在一起。

七、 数据库工具
  增强了数据库工具功能,也更加容易使用了。
  JdataStore:更快,更灵活了。其底层的连接池的性能有显著的提高。Jbuilder4对支持JTA的支持使    JdataStore连接可以利用标准的XA接口参与分布式的事务处理。
  JdataStore Explorer可以用图形化的界面创建和操作table。可以创建表的索引。现在JdataStore支持交叉连接,内连接,外连接,左,右连接。在现在的发行版本中,是通过“natural”或 “using”关键字来指定连接的域。JdataStore现在也支持SQL-92的连接序列,支持分级的子查询。
但是Jbuilder4也还是它的不足:

  1. 和中文系统有冲突。至少和Win2000的中文系统有冲突,它的菜单总是触发中文输入条。 
  2. 速度不够快。还是要求高配置。 
  3. 由于需要Application Server,而且要求装在同一机器上,开发EJB要求的硬件环境太高 
  4. 缺乏WebGain Studio里的一些有用工具,如StructureBuilder。缺乏和Rose等工具的高效集成 
  5. 支持的工具,如版本控制的工具比较少 


   接下来是实现远程接口,远程接口的实现类应该: 

   ⑴ 指定所实现的一个或多个接口。 

   ⑵ 定义远程对象的构造方法。 

   ⑶ 提供所有可供远程调用的方法的实现。 

   ⑷ 创建和安装安全管理器。 

   ⑸ 创建一个或多个远程对象实例。 

   ⑹ 注册至少一个远程对象。 

   下面的代码实现一个返回日期字符串的getData()远程方法,该方法由接口RMIServ2App定义: 
// 本类继承自UnicastRemoteObject,实现接口serv2app 

package com.servletsolutions.serv2app.rmi; 

import java.rmi.*; 
import java.rmi.server.*; 

public class RMIImplementation extends UnicastRemoteObject 
implements RMIServ2App{ 
public RMIImplementation() throws RemoteException{} 
public String getData() throws RemoteException{ 
return java.text.DateFormat.getDateInstance().format( 
new java.util.Date()); 


public static void main(String[] args){ 
// 安全管理器 
System.setSecurityManager(new RMISecurityManager()); 
try{ 
// 远程对象实例 
RMIImplementation bootStrap = new RMIImplementation(); 
// 注册 
Naming.bind(args[0], bootStrap); 
System.out.println(args[0] + " 注册成功"); 
}catch(Exception e){ 
System.err.println("注册失败."); 
System.err.println(e); 




   在客户端,Applet对接口RMIServ2App的引用通过调用Naming.lookup(String)获得,如下所示: 

   RMIServ2App obj = (RMIServ2App)Naming.lookup("//" + getCodeBase().getHost() + "/ServerName"); 

   除了编译Java代码之外,还要用rmic编译器生成远程对象的存根和骨架。存根(Stub)是远程对象在客户端的代理,它将RMI调用传递给服务器端的骨架(Skeleton),后者负责将该调用传递给实际的远程方法。例如执行命令rmic com.servletsolutions.RMIImplementation,则生成的两个类文件分别为RMIImplementation_Stub.class 和RMIImplementation_Stub.class,前者封装入Applet且运行于客户端,后者封装入Servlet且运行与服务器端。 

   当大量的数据是由服务器端的对象动态提供时使用RMI是非常合适的。虽然RMI支持面向对象的分布式编程,但它要求客户端和服务器端都是Java程序。因此,对于使用混合语言开发的应用来说,CORBA比RMI更为适用。 

   四、使用CORBA 

   CORBA即公用对象请求代理体系(Common Object Request Broker Architecture),它的使用方法类似于RMI:定义接口,使用某个工具创建Stub和Skeleton,实现接口,在服务器上注册后客户就可以像本地对象一样访问远程对象了。两者主要的不同之处在于,CORBA使用一种语言中立的接口定义语言(IDL)来定义接口,IDL是一种可用于混合语言环境的更为广泛的协议集。CORBA最大的缺点在于客户本身必须具备调用ORB的能力,这往往意味着增加一个体积较大的JAR文件。 


   下面的CORBAServ2App.idl是上述getData()接口的IDL描述,它定义了一组与Java包名字对应的嵌套模块: 
module com { 
module servletsolutions { 
module serv2app { 
module corba { 
interface CORBAServ2App{ 
string getData(); 
}; 
}; 
}; 
}; 
}; 

   可以用idl2java从IDL文件生成对应的java文件。其中_CORBAServ2AppImplBase.java包含了描述该接口的java抽象类,下面的CORBAImplementation类继承自抽象类_CORBAServ2AppImplBase并具体实现getData()方法: 
package com.servletsolutions.serv2app.corba; 

public class CORBAImplementation extends _CORBAServ2AppImplBase { 
CORBAImplementation(String s){ super(s); } 
public String getData(){ 
return java.text.DateFormat.getDateInstance().format(new java.util.Date()); 



   为了让该类可以被客户访问,Servlet中还应该创建其实例。代码如下所示: 
// 在Servlet的init()方法中初始化CORBAImplementation对象 
// 其中BOA(Basic Object Adapter)的作用类似于RMI中的注册服务

(程序略)