1. 前言
经过对JBuilder 4 Enterprise 版的几天使用,逐步了解了JBuilder 4一些让人向往的特性,如功能丰富的向导,对EJB/Servlet/jsp的直接调试能力。深深的为其震撼,现将一些收获整理,希望能以此提高我们开发的速度!
2. EJB
开发环境的配置
要进行EJB的开发,需要有JBuilder4 Enterprise、Borland Application Server 4.x.
安装
先安装JBuilder 4,假设你要安装到
c:\JBuilder40 (default).
安装 JBuilder Foundations
安装 JBuilder 4 Enterprise.
要安装BAS(IAS)4.x、请先下载JDK1.2.2以上版本,j2eesdk1.2.1以上版本。
安装 J2eesdk 1.2.1 to c:\j2eesdk1.2.2 (default).
安装 Borland Application Server 4.5.
这里假设你将BAS安装到c:\Bas45 (not default),osagent使用缺省的端口 (14000)
Bas与JBuilder4的集成
将JBuilder Open Tool bas45.jar 从 C:\Bas45\console\jbuilder\jb40 拷贝到C:\JBUILDER40\lib\ext 目录下,重启JBuilder.
1. 选择Tools Enterprise Setup 。
2. 在 Application Server 页中选择BAS 4.5,在BAS installation Directory点中选择输入 C:\BAS45
3. 点OK。系统将提示重启JBuilder,请确认。
4. 选择Tools Enterprise Setup
5. 选择Corba页,在Path for ORB Tools中输入C:/Bas45/bin
6. 点Library for projects下的…按钮,选择Bas 4.5 。
实例操作步骤
下面将在Jbuilder里创建一个简单的EJB,请对照下面步骤执行
第一步,创建工程:
选择 File New Project…
将工程目录设为 quickstart.
将根目录设为 c:/project.
按 Finish 按钮.
第二步,创建EJB Group。
EJB Group将打包成Jar文件时自动加入里面的包内的EJB。:
选择 File New… Enterprise tab Empty EJB Group.
设置组的名称为quickstart,JBuilder将在此工程的目录里生成一个quickstart.jar文件。.
点 OK.
第三步、建立Bean
接着使用向导建立Bean:
File New… Enterprise tab Enterprise JavaBean.
点 Next to将这个bean加入刚刚创建的EJB组。
将类名高为TellerBean 点Next.
不要改变接口的名称,但是要将bean home改为TellerHome。
现在,可以看到工程中有三个类. TellerHome和Teller 是EJB容器需要实现的。
TellerBean是我们要加入的商业逻辑的类,双击TellerBean在其中加入以下代码:
public int getTellerNo() {
return 1;
}
Save All your work and Make .
第四步,发布方法
现在我们需要将方法暴露给容器。双击TellerBean,我们可以在Bean这一页中看到一个叫Methods的页。步骤:
双击TellerBean.java。
选中 Bean 页,再选Methods 页。
选中 getTellerNo 方法的复选框(Save All,这时假如你打开Teller.java,你可以看到其中声明了一个新的方法的。)
现在我们写完了EJB的代码。
第五步,配置
现在我们要完成及检查配置描述(Deployment Descriptor)。配置描述是EJB的重要部分,它将发布配置与发布代码分离开,以我们可以在不改变源代码的情况以分解与调配一个应用。
JBuilder已经为我们生成了一部分配置描述,现在我们来作些调整:
双击Double-click quickstart.ejbgroup to view it.
在左下的结构窗格中展开TellerBean ,点 Container Transactions.
点 Add 为我们的方法加入一个事务属性为 ‘Required’的容器事务,点Verify ,应该是0 Warnings,0 Errors. 点Save All ,再点Make 。
第六步,写客户端测试代码。
现在我们完成了服务端的编写,现在我们要写个Java客户端来调用EJB内的getTellerNo。使用向导来创建一个EJB Test Client。
File New… Enterprise tab EJB Test Client
将类名认为 Client
只选中 Generate main function
点OK.
在Client类中加入以下代码。注重是在第一个try语句块的最后。
Teller teller = tellerHome.create();
int t = teller.getTellerNo();
System.out.println(“Using teller No: “ + t);
第七步,编译
最后生成RMI/IIOP的存根(stub)来调用远程方法。
右击TellerHome.java 选中 Properties.
在 Build VisiBroker 页中, 选中 Generate IIOP.
点 OK.
Save All 再 Make .
现在我们已经完成了开发。
第八步,运行
现在我们将在JBuilder4内运行容器来执行这个bean,选运行VisiBroker Smart Agent:
Tools VisiBroker Smart Agent
设置运行容器的参数
Run Configurations…
编辑<default>的设置.
选中 EJB 页.
点 OK, OK.
运行这个container 等待它初始化
右击Client.java,选中Run ,运行客户端。
在消息窗口可以看到这样的输出信息。
C:\JBuilder40\jdk1.3\bin\javaw –class… Using teller No: 1
.
如何调试
1. 设定断点
在TellerBean中找到这一行
return 1;
右击这一行,选择Toggle Breakpoint(或按快捷键F5),这一行将会加亮成红色。
2. 装入容器
点 ,假如在消息框内出现
Borland Application Server Customer
........ done
Initializing JDB............. done
Initializing EJBs............. done
Container [ejbcontainer] is ready
EJB Container Statistics
========================
Time Fri Jun 08 21:51:22 CST 2001
Memory (used) 1304 Kb (max 1304 Kb)
Memory (total) 2292 Kb (max 2292 Kb)
Memory (free) 43.0%
------------------------
Home TellerHome
Total in memory 0
Total in use 0
========================
则可证实Container运行成功。
3. 运行客户端
用右键点击Client.java,选中Run,在调用远程方法时,将跟踪到EJB的内部,想想这个,真是爽呀!JBuilder4开发EJB,真的历害。
3. JSP
开发环境的配置
JBuilder提供了一个JSP开发的完整系统,包括一个用来创建JSP文件的JSP向导,及对JSP标记的CodeInsight(加亮显示,自动完成)技术,集成的Tomcat引擎(支Java Servlet 2.2 及JSP 1.1 ),可以使用户在集成环境下调试JSP代码。
系统无需非凡的设置,便可以用于开发JSP。
实例操作步骤
1. 生成一个JSP工程
选择 FileClose Project关闭所有的打开的工程。
选择 FileNew。
选中Object Gallery的New页中的 JavaServer Page. 这时将出现工程向导。
把Project Name改成SampleJSP.。
单击Finish按钮接受其缺省的配置。
这时工程就创建了,系统将弹出JSP向导。
在JSP向导的第一步中输入JspWithCountingBean,单击Finish。
JSP创建成功。
工程的主类是生成的JSP文件,下面两个文件将加入工程中:
JspWithCountingBean.jsp – 一个包含JSP标记的Html文件。
JspWithCountingBeanBean.java – 一个JSP文件调用的Bean。
双击在工程窗格中的JspWithCountingBeanBean.java,在源程序中增加以下黑体部分代码。
package samplejsp;
public class JspWithCountingBeanBean {
/**initialize variable here*/
private int myCount=0;
private String sample = "Start value";
/**Access sample property*/
public String getSample() {
return sample;
}
/**Access sample property*/
public void setSample(String newValue) {
if (newValue!=null) {
sample = newValue;
}
}
/**New method for counting number of hits*/
public int count() {
return ++myCount;
}
}
双击在工程窗格中的JspWithCountingBean.jsp,在代吗中增加以下黑体部分代码。
<HTML>
<HEAD>
<jsp:useBean id="JspWithCountingBeanId" scope="session"
class="samplejsp.JspWithCountingBeanBean" />
<jsp:setProperty name="JspWithCountingBeanId" property="*" />
<TITLE>
JspWithCountingBean
</TITLE>
</HEAD>
<BODY>
<H1>
JBuilder Generated JSP
</H1>
<FORM method="post">
Enter new value: <INPUT NAME="sample">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Reset">
Value of Bean property is: <jsp:getProperty name="JspWithCountingBeanId"
property="sample" />
<P>