第五部分: 创建ejb-jar 文件

[ <<BACK ] [ CONTENTS ] [ NEXT>> ]

Enterprise JavaBeans 的最大优势,就在于它可以对服务器端的逻辑进行打包和拆分,这种可移植性风格与 GUI 组件相同。在该操作步骤中,需要对源文件进行编译。然后,将其打包为 ejb-jar 文件。按照下面的四个步骤操作,就可以创建 Demo.jar ejb-jar 文件。该文件可在Enterprise JavaBeans 容器内配置或安装。

1. .java 文件的编译

  1. 创建DeploymentDescriptor(部署描述文件)
  2. manifest的创建
  3. 应保证包含所有的部件
  4. 创建 ejb-jar 文件

 

1. .java 文件的编译

在刚创建的文件,即home及远程接口、Enterprise JavaBeans bean 上,运行 javac。

 
  javac ejb/demo/DemoHome.java
  javac ejb/demo/Demo.java
  javac ejb/demo/DemoBean.java
 

 

2. 创建Deployment Descriptor(部署描述文件)

注意:部署Enterprise JavaBeans 中的术语,指的是在Enterprise JavaBeans 容器中安装Enterprise JavaBeans 组件。

部署描述文件的作用是在部署之前,允许您通过 bean的程序对 bean 的诸多属性进行定制。在Enterprise JavaBeans 技术规范(15.2 部分)中,部署描述文件被描述成一个javax.ejb.deployment.SessionDescriptorjavax.ejb.deployment.EntityDescriptor的实例。在 DemoBean 的例子中,是 javax.ejb.deployment.SessionDescriptor 的实例。以下是一个输入到 WebLogic的实用工具的文本文件,介绍创建该部署描述文件的过程。

值得注意的是,对创建部署描述文件的方法没有具体的规定。因此,Enterprise JavaBeans 的创建和部署工具可能会在外观和感觉上各不相同,这不会对 beans 本身的跨平台部署能力产生影响。

在下面的例子中,将继续通过 WebLogic 工具创建部署描述文件。BEA Weblogic 服务器工具可为用户提供命令行及图形界面(GUI)配置工具。通过命令行工具对Enterprise JavaBean 进行配置时,需执行以下命令:

java weblogic.ejb.utils.DDCreator -dir ejb/demo ejb/demo/DeploymentDescriptor.txt

这样,就可以在目录 ejb/demo 下生成一个 DemoBeanDD.ser 文件

以下是一个输入到 BEA Weblogic 工具的文本文件实例 DeploymentDescriptor.txt 源程序):

(SessionDescriptor 
; This file must start with SessionDescriptor or 
; EntityDescriptor
  
; Indicate the name which the bean will be bound 
; into the JNDI name as 
beanHomeName                    demo.DemoHome 
 
; The enterprise Java Bean class (see step 4)
enterpriseBeanClassName         ejb.demo.DemoBean
  
homeInterfaceClassName          ejb.demo.DemoHome
; The home interface implemented by a class 
; generated by the container provided tools 
; see step 3
 
remoteInterfaceClassName        ejb.demo.Demo
; See step 2
 
isReentrant                     false 
; Always false for session beans 
 
stateManagementType             STATELESS_SESSION
; Either STATELESS_SESSION or STATEFUL_SESSION.
; DemoBean is a stateless session bean
 
sessionTimeout                  5
                                ; seconds
 
(controlDescriptors
; This section decides the run-time properties when 
; a method is called. The DEFAULT sub-section applies 
; to all methods, but can be overridden on a per-method 
; basis, similar to the "accessControlEntries" above.
  (DEFAULT
     isolationLevel           TRANSACTION_SERIALIZABLE
 
     transactionAttribute     TX_REQUIRED
 
 
     runAsMode                CLIENT_IDENTITY
  )
  ; end isolationLevel
 
)
; end controlDescriptors
 
(environmentProperties
 
  maxBeansInFreePool          100
 
)
; end environmentProperties
)
; end SessionDescriptor
 

注意:此处是以BEA Weblogic 服务程序为例作介绍的,其注释行以分号 (;) 作为开头。

 

3. manifest的创建

manifest是由 jar 应用程序自动生成的,但这需要一个模板。故需创建一个包含如下内容的文本文件(如,ejb/demo/manifest.txt)。如需了解该文本文件的使用,请参见下一章节的“bean 的打包”部分。

欲获取有关manifest文件的说明,请参见Enterprise JavaBeans 技术规范中的 15.3 部分。

    Name: ejb/demo/DemoBeanDD.ser
Enterprise-Bean: True
 

 

4. 确保包含所有部件

以下是Enterprise JavaBeans 的开发者和提供者应提供的创建有效 ejb-jar 文件,即Enterprise JavaBeans bean,所需的各种部件:

  • Enterprise bean 类 + 其它支持 bean 的各种类(步骤 4)。
  • Enterprise bean 远程接口(步骤 2)。
  • Enterprise bean home接口(步骤 3)。
  • A deployment descriptor (部署描述文件)(参见以上说明)
  • bean 需要,还应包含一个java.util.Properties 的实例。
  • ejb-jar 文件中用来确定配置描述符的manifest(货单)文件。

欲了解更多详情,请参见Enterprise JavaBeans 技术规范,第 16 章。

Enterprise JavaBeans bean 提供商应将以上提及的所有类都包含在 ejb-jar 文件中。并且,绝大部分的容器和服务器提供商一般都会提供打包和配置工具。

manifest

 

manifest是由 jar 应用程序自动生成的,但这需要有一个模板。因此,应按以下说明创建一个文本文件(比如, ejb/demo/manifest.txt)。如需了解该文本文件的使用,请参见下一章节的“bean 的打”部分。

欲了解manifest文件的有关说明,请参见Enterprise JavaBeans Specification15.3 部分。

 
    Name: ejb/demo/DemoBeanDD.ser
Enterprise-Bean: True
 

5. ejb-jar 文件的创建

在本例中,只需将所有的部件压缩为名为 Demo.jar 的一个文件。有理由相信,未来的工具会使打包及 ejb-jar 文件的创建变得更加简便。这就像 GUI 向导能够引导您进行相关的安装和检查一样容易。

比如,要创建一个名为 Demo.jar 的 ejb-jar 文件,假定压缩文件的所有部分均在名称为 ejb 的目录下。您所要做的只是在该目录下创建一个压缩文件。

注意:通过 m 参数,将文件压缩并以 ejb/demo/manifest.txt,以作为manifest模板。将文件manifest.txt 添加到该压缩文件中,这并不是必需的。

jar cvfm Demo.jar ejb/demo/manifest.txt ejb/demo/*.class \
ejb/demo/*.ser

检查 Demo.jar 文件的输出是否与下列文件相同:

  
jar tf Demo.jar
 
  META-INF/MANIFEST.MF
  ejb/demo/Demo.class
  ejb/demo/DemoBean.class
  ejb/demo/DemoHome.class
  ejb/demo/DemoBeanDD.ser
 

从上面的例子可以看出,对于 ejb-jar 文件也没有什么特别的规定。

<< BACK  NEXT >>

 

 

常见问答
下载中心
产品简介
 
 
Solaris论坛
 
   
 
null