我们有一个场景,我们不想更改在Java 1.4上运行的服务器JVM。但客户端使用的是Java 1.5,我们在调用EJB时遇到异常。我们不确定这是我们的应用程序问题还是EJB服务器 - 客户端JVM兼容性问题。
答案 0 :(得分:4)
您处理向前兼容性(FC),因为您尝试使用旧服务器(1.4)运行新客户端(1.5)。 Java不保证FC。它只是保证向后兼容性(BC),如Incompatibilities in J2SE 5.0 since 1.4.2(www.oracle.com上的mirror)中所述:
除了下面列出的不兼容性之外,JDK 5.0与Java 2 SDK v1.4.2向上二进制兼容。这意味着,除了所提到的不兼容性之外,使用1.4.2版编译器构建的类文件将在JDK 5.0中正确运行。
注意:Sun文档编写者将向后兼容性称为向上兼容性(他们将其描述为“使用1.4版构建的类文件”。将运行2个编译器 正确地在JDK 5.0“中,但这是一个错误,因为:向后 == 向下(wiki)和向前 = = 向上(wiki)。
答案 1 :(得分:0)
不确定这是否与你正在做的事情有关......
但是你可以让EJB 3与EJB 2交谈。但是,您必须执行通信EJB 2样式。因此,对于Java 1.5,您可能需要确保客户端在EJB 2样式查找中查找EJB 2(或者因为您是JDK 1.4而查找2.1)。