用JBuilder开发一个简单J2EE 应用

板桥里人 https://www.jdon.com 2002/06/2

说实话,在使用Jbuilder前 我也是有抵触情绪的,认为Java图形界面程序总是很慢,但是由于经不住Jbuilder强大的EJB开发功能的诱惑,将我原来PIII 450 128M内存扩展到192M以后,安装上Jbuilder 7,惊奇的发现,庞大的Jbuilder 7居然可以顺畅的运行了。

运行Jbuilder 7的感觉和在我机器上运行 Corel Draw 10一样,虽然启动时都一样慢,但在使用过程中就非常顺畅,没有停顿。Jbuilder 7不愧是现在最好的Java开发工具.

Jbulder EJB2.0的可视化工具可以在几分种内开发CMP EJB,开发者有更多的时间花在客户市场上,这样看似复杂的EJB开发已经变得非常简单和迅速。

一。安装准备工作

1.正确安装Jboss+Tomcat

2.下载安装Jbuilder 7 企业版,

3.开始你自己的项目开发,为项目设置server,选择Project Properties 中的 Server.选择 JBoss 3x 确认OK.

4.为了部署你的ear war或u jar, 选择Tools/Enterprise Deployment部署即可.

 

二。开发简单的EJB

1.我们使用现成Interest程序,该程序可以从JBoss的http://www.jboss.org/docs/manual/files/的documentation-example.zip 中获得.

在C盘根目录建立一个目录examples,将上述包中org/Jboss/docs/Interest目录拷贝到examples下.同时将interest目录下的*.xml配置文件去除,我们将使用Jbuilder来生成这些文件.

2.选择 New project for existing code -->Directory 选择 目录c:\examples -->name 输入examples(自己定义),完成后,在左边栏目中,出现examples项目,还有目录org.jboss.docs.interest,双击,可看到5个Java程序。

reBuild这些源程序,以便下一步我们在EJB designer中导入。

3.选择new -->EJB Module (如果你的项目server不支持EJB,将无法选择此项,本项目是使用JBoss来作为EJB的支持服务器,这些在project properties的server选择设定)-->取名interest(自己定义)-->选择version为EJB 2.0 完成后,在左边栏目中,又多出一个interest目录,双击,

如果我们不使用下载的interest源程序,可以在右边大栏目上方 点击 "Create EJB",从而创建自己的EJB;

这里我们使用了interest,所以要导入,可以在右边大栏目上方 点击 "Import EJB"

bean name: Interest
bean type: session -->interest是个session bean。
base class: org.jboss.docs.interest.InterestBean
home interface class:org.jboss.docs.interest.InterestHome
remotr interface class: org.jboss.docs.interest.Interest

完毕后,出现了一个红色方框,表示我们的Interest EJB创建好了。

你可以点击 "EJB DD Source"看看ejb-jar.xml的内容.

rebuild或make这个EJB,会自动生成一个jar文件

 

三。建立简单的Web 应用
4.EJB建立完成后,我们开始建立一个web应用:

在new -->Web Application(如果你的项目 server不支持Web,将无法选择此项目)

输入web application的名字,自己定义,如interestweb 以后访问这个web应用,就是http://localhost:8080/interestweb/

directory就选择examples目录下web目录,这也是自己定义的。

完成后,在左边栏目中多出一个interestweb的目录.

5.建立一个Web Servlet,由于interest源程序中,是靠servlet来调用EJB的,当然你也可以用你的JSp调用EJB,那么我们要增加一个Web Servlet应用。

选择new-->Servlet --->package 选择org.jboss.docs.interest
classname:自己定义,如InterestServlet
其他都是欠缺,注意,由于interest中原来有一个程序叫 InterestServlet,这次我们将替换这个程序(Servlet程序无法象EJB那样导入).

完成后,在左边栏目出又多出一个目录;Addtional Settings,展开,我们看到了InterestServlet,然后,将原来的InterestServlet内容copy过来。

rebuild检查这个servlet有无问题。

6.有了servlet 我们需要一个页面来访问这个Servlet,在interest原来程序中,是home.html,我们使用Jbuilder的new导航,自动建立一个home.jsp. 将home.html中代码copy过来就可以。

这样在interestweb下的Rott directory多了一个home.jsp

rebuild检查这个home.jsp有无问题。

 

四。配置发布

7.一个简单的J2EE框架已经出来了,现在我们要作些配置工作,让Web应用的Servlet能够访问到EJB:

展开interestweb 展开deployment desciptors,双击web.xml 我们来编辑web.xml

web.xml是用来定义web应用的,在本web应用中,关键是要让应用程序找寻到EJB,也就是关键是JNDI的配置。这里我们使用JNDI的欠缺配置,直接引用<ejb-name>的值,这要求web应用程序和EJB程序在一个EAR文件中。

更复杂的JNDI配置就要根据不同的J2EE server各自不一样,在实际应用中,有专门的deploy人员负责。

在左边右下角出现webApp deployment descriptor的DTD 就是语法。

首先,我们要解决和EJB的联系,选择EJB References, 增加一个EJB reference:

Reference Name:
这个EJB的名字很重要,由于interest程序中是用InterestServlet调用EJB的,我们要打开InterestServlet,寻找到Object ref = jndiContext.lookup("java:comp/env/ejb/Interest");

其中ejb/Interest就是Reference Name

link:
由于上面提到,我们使用欠缺的JNDI机制,所以这里link一定要定义,定义成<ejb-name>,本例中是Interest

Home Interfcae:
org.jboss.docs.interest.InterestHome

Remote Interfcae:
org.jboss.docs.interest.Interest

打开source 可以看到:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>interestservlet</servlet-name>
<servlet-class>org.jboss.docs.interest.InterestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>interestservlet</servlet-name>
<url-pattern>/interestservlet</url-pattern>
</servlet-mapping>
<ejb-ref>
<ejb-ref-name>ejb/Interest</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.jboss.docs.interest.InterestHome</home>
<remote>org.jboss.docs.interest.Interest</remote>
<ejb-link>Interest</ejb-link>
</ejb-ref>
</web-app>

注意: <url-pattern>/interestservlet</url-pattern>是访问InterestServlet的Jsp或html页面中的form action的值,有大小写区分,现在是:

<form action="interestservlet" >

...

</form>

但是本例中,有一个home.html是用来调用InterestServlet的,我们看看home.html的代码发现:

<form action="InterestServlet" method="POST" >

所以现在有两种选择,要么修改这里的<url-pattern> 要么修改home.html中action

我们修改<url-pattern>吧。

注意: <servlet-name>interestservlet</servlet-name>中是servlet的名字,也区分大小写,我们servlet的程序是InterestServlet,如果你有不符合的地方要修改过来

配置welcome files为home.jsp 在本例中,第一个文件不是index.html 或index.jsp 是home.jsp

否则测试键入http://localhost:8084/interestweb/将出错。

rebuild或make这个web应用,会自动生成一个war文件

8.最后,我们来生成ear文件,如果没有Jbuilder帮忙,我们可能要使用ant手工编制build.xml,如果你经常开发新项目,这就很麻烦。Jbuilder现在很快能搞定。

new-->Ear (如果在本项目中,你没有安装EJB server,将无法选择)

在建立导航中,Jbuilder会自动发现你的EJB ,你要打钩加入,自动发现你的Web App ,你要选中。

完成后,在左边栏目中,多出一个examples.eargrp目录,双击打开,其实这就是application.xml

由此J2EE需要的几个标准XML配置文件,我们依靠Jbuilder已经迅速的建立完成。

8.rebuild或make, 会自动在examples.eargrp下生成examples.ear文件。

使用tools/Enterprise Deployment 将examples.ear发布到JBoss中

或手工将examples.ear拷贝到Jboss的deploy目录下。

 

五。测试成功

http://localhost:8080/interestweb/访问你的J2EE,按提交按钮后,应该出现下列:

Servlet interface to EJB
Calling EJB...
Interest on 1000.0 units, at 10.0% per period, compounded over 2.0 periods is: 210.00000000000023

这里是本例中成功发布的程序,你可以将其中examples.ear直接发布,或打开,和你自己的试验作个对比

以上只是简单的JBuilder开发EJB过程,需要了解更详细的、实战性质的开发过程可进入VIP会员教程