3

JavaEE 7 教程中

下面提到

Enterprise beans often provide the business logic of a web application. In these cases,
packaging the enterprise bean within the web application's WAR module simplifies
deployment and application organization. Enterprise beans may be packaged within a
WAR module as Java programming language class files or within a JAR file that is
bundled within the WAR module.

然后过了一会儿

JAR files that contain enterprise bean classes packaged within a WAR module are not
considered EJB JAR files, even if the bundled JAR file conforms to the format of an EJB
JAR file. The enterprise beans contained within the JAR file are semantically
equivalent to enterprise beans located in the WAR module's WEB-INF/classes directory,
and the environment namespace of all the enterprise beans are scoped to the WAR module.

我无法通过这部分来理解这个例子。

怎么可能

企业 bean 可以作为 Java 编程语言类文件打包在 WAR 模块中,也可以打包在捆绑在 WAR 模块中的 JAR 文件中

然而

包含打包在 WAR 模块中的企业 bean 类的 JAR 文件不被视为 EJB JAR 文件,即使捆绑的 JAR 文件符合 EJB JAR 文件的格式。

4

1 回答 1

3

规范试图说明 EJB 注释将在 中WEB-INF/classes/的 JAR 中或 JAR 中的类上被识别WEB-INF/lib/,但是如果您决定将预先存在的 EJB 模块 JAR 移动到WEB-INF/lib/中,它将被解释为常规 JAR,而不是独立的 EJB 模块,这意味着该 JAR 中的模块特定部署描述符将被忽略(例如,、、、META-INF/ejb-jar.xmlMETA-INF/validation.xmlMETA-INF/beans.xml。相反,这些描述符需要合并在一起并放入包含的 WAR WEB-INF/(例如WEB-INF/ejb-jar.xml,等)中。

于 2013-11-01T20:42:09.617 回答