5.部署
部署是将J2EE组件(EJB,jsp,Servlet等)正确安装并配置到J2EE服务器中,然后,客户端程序才能够访问它。EJB运行在EJB容器中,因此,必须把我们编写的Bean部署到服务器上。
首先,确保J2EE服务器正在运行,请参考第3步:启动和停止J2EE服务器。
然后,再打开一个新的命令行窗口,输入:
deploytool
稍等片刻,出现部署窗口:
点击查看大图首先,我们需要新建一个服务器端应用程序:
选择File > New > application…:
输入希望存放ear文件的完整路径和应用程序的名称,当然,这里我们的这个C:\helloapp\ear文件并不存在,部署工具稍后会创建它。
现在,Deployment Tool已经创建了一个hello的Application,但是还没有任何可以部署的组件:
点击查看大图下一步,我们将要添加前面我们编写的第一个EJB:
选择File > New > EnterPRise Bean…,然后,按照向导开始部署EJB:
在Contents栏中,需要添加所有必须的class文件,点击“Edit…”,添加我们编译好的3个class文件:
然后,向导提示选择EJB类型。EJB 2共有3种Bean:session Bean,Entity Bean和Message-Driven Bean,我们编写的是Session Bean,并且选择Stateless,表示该Session Bean是无状态会话Bean,所有客户端都可以共享一个Bean。如果选择Stateful,则每个客户端会拥有不同的Bean,类似于web应用程序的session机制。
在下面的下拉列表框中,选择对应的class。注意我们没有编写Local Home和Local Interface,因此让它们保持为空。然后输入Enterprise Bean Name:HelloBean。
剩下的可以直接使用默认值,一路Next即可。完成后,可以看到,主窗口多了一个Ejb1,选中它,我们还需要在JNDI Names一栏填入ejb/Hello,客户端将根据JNDI Name来查找我们编写的Bean:
选择File > Save,保存我们创建的Application。接下来,我们将把这个Application部署到服务器上。
选择Tools > Deploy,出现Deploy向导:
对话框提示我们将要部署的应用程序是hello,目标服务器是localhost,然后,一定要选中Return Client Jar,因为要从客户端访问部署在J2EE SDK服务器上的应用,必须要有这个Jar包。如果使用其他服务器,也需要相应的Jar包,如JBoss客户端需要jbossall-client.jar。这里,我们选择好存放Client Jar的目录,然后Next即可。
最后,J2EE服务器开始编译并部署我们的Hello Bean,可以看到两个进度条:
当进度条填满时,表示部署成功!可以在j2ee服务器的控制台窗口上看到如下输出:
Compiling C:\j2sdkee1.3.1\repository\cn1d6xUC\gnrtrTMP\hello\HelloBean_RemoteHom
eImpl.java ....
Compiling C:\j2sdkee1.3.1\repository\cn1d6xuc\gnrtrTMP\hello\HelloBean_EJBObject
Impl.java ....
rmic HelloBean_RemoteHomeImpl...
rmic HelloBean_EJBObjectImpl...
Application hello deployed.
整个部署是在窗口模式下进行的,好处是不用编写繁琐的xml配置文件。在实际的开发过程中,如果每当修改代码都这样部署一遍是非常低效的,因此应当使用ant实现自动编译、部署并测试。
(出处:http://www.knowsky.com)