Jboss EJB容器向后兼容的程度如何?

Jboss EJB容器向后兼容的程度如何?,jboss,ejb,backwards-compatibility,specifications,Jboss,Ejb,Backwards Compatibility,Specifications,我继承了一个运行在JBoss 2.4.3上的应用程序(我相信它与EJB spec 2.0兼容),我遇到了很多问题(比如能够使用现代log4j“Logger”API[JBoss 2.4特定问题促使我升级]) 我知道我应该能够毫无问题地使用EJB2.1容器(JBoss4),但我应该期望能够更进一步吗 EJB的向后兼容性要求是什么 它们是否意味着通过主要版本向后兼容 应用程序供应商是否使它们完全向后兼容 要使旧的应用程序符合要求,需要进行哪些修改?(小型或大型?应用程序配置或重新编译?等)log4j和

我继承了一个运行在JBoss 2.4.3上的应用程序(我相信它与EJB spec 2.0兼容),我遇到了很多问题(比如能够使用现代log4j“Logger”API[JBoss 2.4特定问题促使我升级])

我知道我应该能够毫无问题地使用EJB2.1容器(JBoss4),但我应该期望能够更进一步吗

EJB的向后兼容性要求是什么

它们是否意味着通过主要版本向后兼容

应用程序供应商是否使它们完全向后兼容


要使旧的应用程序符合要求,需要进行哪些修改?(小型或大型?应用程序配置或重新编译?等)

log4j和ejb2.0不相关。如果您对log4j有问题,那么很可能是类路径问题,而不是ejb2.0兼容性问题。可能您的旧应用程序假定log4j位于系统类路径上的某个位置。

指出

EJB3规范要求所有符合要求的容器都支持EJB2

这是个好兆头。接下来将进一步讨论EJB2和EJB3功能的混合。因此,可能会有一些例外,但这真的不应该是几乎不可能的

现实可能不同;如果发现jboss升级有问题,我将进行更新。

有关EJB库,请参阅:


问题在于jboss 2.4使用了log4j 1.1,并扩展了1.2中没有的CategoryFactory(因此从类路径中删除它不是一个选项)。它释放出大量信息级别的消息,这些消息无法以我熟悉的方式关闭(或者以任何方式关闭)。这是JBoss和log4j的问题,然后是EJB规范的问题。如果您的应用程序是专门为使用JBoss2.4的功能而设计的,那么当然它可能无法与JBoss和其他容器的更高版本兼容。但是,如果应用程序使用纯EJB规范,它应该是兼容的。我没有任何例外,因为我已经决定询问知识,而不是尝试4个版本的jboss并花3天时间“玩”。(我这样做是为了快速取胜……我认为这是EJB的一个矛盾修饰法,但我想尝试一下)。我想,您询问我得到了哪些异常表明以后的版本不兼容:)…支持EJB2.x编程模型,如EJB3规范中所指定。每个新规范都澄清了可能导致微妙不兼容的模糊性。