这是我对EJB规范和Java版本之间关系的理解
EJB 2.1规范要求EJB 2.0具有向后兼容性,因此支持EJB 2.1并在JDK 1.4.x中运行的容器也能够运行EJB 2.0 bean。
EJB 3规范要求对早期版本的规范进行向后兼容。
我的问题是这个。如果我升级用于实现EJB 2.0 bean的java代码以针对更高版本的Java(比如Java 5)进行编译,我是否仍然可以保留相同版本的EJB规范,或者我是否也需要迁移它。 /强>
答案 0 :(得分:4)
您甚至不应该“升级”Java代码,因为我认为旧代码只能在源代码级别由于与新引入的关键字冲突的标识符而不兼容,但这在字节码级别不是问题。 / p>
因此,您的旧Java 1.3 / EJB 2.0 EAR应该仍然在Java 5 / EJB 3应用程序服务器上保持不变,您甚至可以在代码中进行错误修正,并在现代JDK上使用-target 1.3
进行编译,而无需修复碰撞标识符(当然您也不能使用新的源级功能)。
答案 1 :(得分:3)
这个table显示了ejb 2.0,2.1和3.0版本之间源(构建时)级别的几个不兼容性,尽管所有版本都支持二进制(运行时)兼容性,即您可以运行代码在新的ejb版本上,无需重新编译。