4

这是我对 EJB 规范和 Java 版本之间关系的理解

  • EJB 2.0 是 J2EE 1.3 平台的一部分,它位于 J2SE 1.3 或 JDK 1.3.x 之上
  • EJB 2.1 是 J2EE 1.4 平台的一部分,它位于 J2SE 1.4 或 JDK 1.4.x 之上

EJB 2.1 规范要求 EJB 2.0 向后兼容,因此支持 EJB 2.1 并在 JDK 1.4.x 中运行的容器也将能够运行 EJB 2.0 bean。

  • EJB 3.0 是 Java EE 5 平台的一部分,需要 Java SE 5 (JDK 5) 进行注释等

EJB 3 规范要求向后兼容早期版本的规范。

我的问题是这个。如果我升级用于实现 EJB 2.0 bean 的 Java 代码以针对更高版本的 Java(比如 Java 5)进行编译,我是否仍然可以保留相同版本的 EJB 规范,或者我是否也需要迁移它。

4

2 回答 2

4

您甚至不必“升级” Java 代码,因为我认为由于标识符与新引入的关键字冲突,旧代码只能在源代码级别不兼容,但这在字节码级别不是问题。

因此,您的旧 Java 1.3/EJB 2.0 EAR 仍应在 Java 5/EJB 3 应用服务器上保持不变,您甚至可以在代码中进行错误修复并-target 1.3在现代 JDK 上进行编译,而无需修复冲突标识符(当然,您那时也不能使用新的源级功能)。

于 2011-03-14T10:37:54.930 回答
3

显示了 ejb 2.0、2.1 和 3.0 版本之间在源代码(构建时)级别的几个不兼容性,尽管所有版本都支持二进制(运行时)兼容性,即您可以在新的 ejb 版本上运行您的代码而无需需要重新编译。

在此处输入图像描述

于 2011-12-03T12:42:35.490 回答