Bean和Servlet的企业应用(2)


译Session Bean和Servlet:

用如下批处理,可以编译Session Bean:

cd C:\J2EE

set J2EE_HOME=C:\J2EE\j2sdkee1.2.1

set CPATH=.;%J2EE_HOME%\lib\j2ee.jar

javac -d . -classpath %CPATH% Beans/CalcBean.java

Beans/CalcHome.java Beans/Calc.java

  其实,在前面设置了Classpath的路径之后,只要在C:\J2EE目录下面:

javac Beans/CalcBean.java Beans/CalcHome.java Beans/Calc.java直接执行就可以。下面的批处理也是同样的。


用如下批处理编译Servlet:

cd C:\J2EE\ClientCode

set J2EE_HOME=C:\J2EE\j2sdkee1.2

set CPATH=.;%J2EE_HOME%\lib\j2ee.jar;

C:\J2EE

javac -d . -classpath %CPATH% BonusServlet.java

编译Servlet的时候,因为用到了Session Bean的类,所以必须还要在Classpath中把C:\J2EE的加进去。

这样就把Session Bean和Servlet编译好了。


九、启动J2EE的应用服务器。

  我们需要启动J2EE的应用服务器来配置和运行这个例子。启动的命令在J2EE的安装目录C:\J2EE\j2sdkee1.2\bin\j2ee.bat下面。命令行如下:

j2ee �verbose

参数-verbose是表示在启动服务器的时候,将启动信息输出到屏幕上。当你看见输出

J2EE server startup complete

时,就可以启动配置工具了。现在,我们暂时忽略其它的输出信息。


十、启动配置工具:

  为了组装和配置J2EE的应用程序,必须启动deploytool。我们前面已经配置好了路径信息,只要敲入如下命令就可以了:

deploytool

  如果在启动的时候遇到了内存访问错误,试着增加一个环境变量:JAVA_FONTS。将它设置为系统的fonts目录。象是:C:\WINNT\fonts之类的。另外,如果遇到了NullPointerException错误,可能是因为你在根目录下执行deloytool。在别的目录下执行deploytool一般不会遇到这样的错误。


十一、配置工具:

  配置工具有四个窗口。Local Application窗口显示了J2EE的应用程序和它们的组件。Inspecting窗口所选择的J2EE应用程序或者组件的信息。Servers窗口告诉你应用程序正运行在本地主机上。Server Application窗口告诉我们安装了那些应用程序。在安装J2EE应用程序的过程中。我们将会看到Local Application窗口、Inspecting窗口和Server Application窗口显示相应的 ⅰ?/p>

  在Server Application窗口的右边,有一个uninstall按纽。可以卸掉J2EE应用程序。如果是改变或者重新配置应用程序,并不需要停止或者重新启动应用服务器。


十二、组装J2EE应用程序:

  步骤如下:创建一个新的J2EE应用程序(BonusApp.ear)、创建一个新的Enterprise Bean(CalcBean.jar)、创建一个新的Web组件(Bonus.war)、为Enterprise Bean指定一个JNDI名字(calcs)、指定J2EE应用程序的根上下文(BonusRoot)。


创建一个J2EE应用程序:

J2EE组件是组装到J2EE应用程序文件包(*.ear)里面的。

在File菜单中选择New Application:

  在弹出的New Application 对话框中,将New Applicaion Name的名字起为:BonusApp.ear。然后在Application Display Name域上点鼠标右键,将会显示BonusApp。然后单击Browse按纽,将新的ear文件存放在你想要存放的目录下。

在New Application file chooser中:

  定位到你存放应用程序EAR文件的目录,在这个例子中,目录是C:\J2EE。在File Name框中填入:BonusApp.ear。单击New Application,再单击OK。

  现在,BonusApp显示在Local Application列表框中。Inspecting窗口中显示了名字、位置和BonusApp包含的内容信息。在内容窗口中显示meta信息描述了Jar文件和J2EE应用程序。并且提供了应用程序的运行时的信息。


创建一个Session Bean:

  在File菜单中选择New Enterprise Bean。显示了向导的介绍,大概浏览一下。然后单击Next。弹出EJB JAR对话框。按照下面写的输入:

Enterprise Bean will go in: BonusApp

Display name: CalcJar

Description: 一个计算奖金的Session Bean,里面有一个方法。

单击Add,这里面有两个Add按钮,我们单击的是右下角的那个。在Contents Window旁边。

Add Files to .Jar对话框:进入到J2EE的目录。可以直接敲路径名或者通过傍边的Browse得到。到了J2EE目录之后。双击Beans目录显示里面的文件。依次把Calc.class、CalcHome.class、CalcBean.class 都Add进去。

  单击OK。现在就返回到了EJB JAR对话框。Beans/Calc.class、Beans/CalcBean.class、Beans/CalcHome.class应该在Contents窗口中显示出来。单击Next。

General对话框:下面相应的框应该如下选择。

Classname: Bean.CalcBean

Home interface: Beans.CalcHome

Remote interface: Beans.Calc

Bean type: Session and Stateless

  指定显示的名字(就是当Jar文件加到Local Application窗口中的BonusApp中之后显示的名字)。并且提供JAR文件内容的描述。

Display name: CalcBean

Description:这个文件包含了CalcBean Session Bean。单击Next。

环境入口:因为我们这个例子没有使用到环境入口属性。直接单击Finish。


创建Web组件:

  Web组件(Servlet和JSP技术)被捆绑到一个WEB压缩包(WAR)中。

  在File菜单中选择New Web Component。弹出New Web Component的向导。大概浏览一下,单击Next。

WAR File General Properties 对话框。提供如下信息:

WAR file: BonusApp

Display name: BonusWar

Description: 本WAR文件包含了一个Servlet和一个html页面。

单击Add:

Add Contents to WAR对话框:

转到ClientCode目录。

选择bonus.html文件。Add进去。注意在列表框中文件前面不要有它的目录的前缀。单击Add。

然后把BonusServlet.class也加进去。

  有时候明明把Servlet加进去了,系统死活就是不认。这是,删除Servlet,重新假如可能就好了。我在做这一步的时候加了好多次,每次做同样的操作。不知道为什么,J2EE竟然出这样弱的BUG。另外,要先加class文件,然后再家html文件。顺序也有关系。单击Finish。

回到WAR File General Properties对话框。单击Next。

Choose Component Type对话框:

选择Servlet,然后单击Next。

Component General Properties对话框:

确定在ServletClass 中选择了BonusServlet。

敲入显示的名字(BonusServlet)以及其描述信息。

因为本例子我们只是用了一个Servelt,所以可以忽略startup and load sequence的设置。

Component Initialization Parameters对话框:没有使用参数,单击Next。

Component Alias对话框:

单击Add.

  敲入BonusAlias并回车。这个别名和在html页面中表单的Action域中指定的是一样的。

单击Finish。

  在这里面,将会看到WAR文件包含了一个XML文件,里面有Web应用程序的结构和属性信息。还有bonus.html文件和BonusServlet类文件。WAR文件安排所有的Servlet类都在Web-INF/classes目录下面。然而,当WAR文件配置好之后,BonusServlet类被放到了上下文的根目录public_html下。这样的放置符合Servlet 2.2的Web服务规范。


指定JNDI名字和根上下文:

  在配置BonusApp应用程序和它的组件之前,必须要指定用来查找CalcBean Session Bean的JNDI名字BonusServlet。还要指定上下文的根目录,配置器将把Web组件放到这个目录下。

JNDI名字:

  在Local Application窗口中选择BonusApp文件。在Inspecting窗口中选择JNDI页。在最右边的JNDI name下面敲入calcs。这个名字应该和Servlet中lookup()方法中的名字一样。

上下文根目录:

  在Inspecting目录中,选择Context页。在左边一列是BonusWar。在右边一列敲入BonusRoot。配置好之后的文件结构如下:

别名:

在Local Application窗口中,单击BonusWar,然后单击BonusServlet。然后在Inspecting窗口中选择Alias页。如果没有BonusAlias,就填入BonusAlias。


十三、验证并配置J2EE应用程序:

  在配置应用程序之前,最好先验证一下是否有错误。验证程序将会收集所有的错误信息,例如编译时找不到Session Bean中相匹配的方法。

  验证:在Local Application中选择BonusApp,单击Tool菜单中的Verifier。单击OK,应该出现的是没有错误。然后关闭验证窗口。注意:J2EE1.2的版本可能会出现一个test app.WebURI错误。这个表示配置工具在创建WAR文件的时候没有把.war扩展名加进去。这是J2EE的一个小BUG。没有关系,不管它就行了。

  配置:在Tool菜单中,选择Deploy Application。弹出Deploy BonusApp对话框。要注意保证Target Server selection要么是localhost,要么是运行了J2EE服务器的主机。另外,注意必要选择Return Client Jar box。

  单击Next,确定JNDI名字显示为calcs。否则自己填如。

  单击Next,确定Context Root name显示为BonusRoot,否则自己填入。

  单击Next,在单击Finish。将弹出一个对话框显示配置操作的状态。

十四、运行J2EE应用程序:

Web服务器默认端口8000运行。可以在C:\J2EE\j2sdkee1.2\config目录下的web.properties文件中改。

在浏览器中地址栏中输入:http://localhost:8000/BonusRoot/bonus.html

然后输入社会保险号和乘数。单击Submit按钮。浏览器将返回类似如下的叶面:

Bonus Calculation

Soc Sec: 777777777

Multiplier: 25

Bonus Amount 2500.0

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3