EJB:011224 无法绑定接口。另一个 EJB 已经将接口绑定到该名称

EJB:011224 Unable to bind the interface. Another EJB has already bound an interface to that name

我的 ADF 申请有主题行问题。它在 WLS 10.3.6 env 上运行正常,但在 WLS 12c (12.2.1.3) 上运行失败。 一些背景。我有模型、可重用和 ADF UI 项目。该模型有服务部分,它是从应用程序菜单部署的。同一模型项目是可重用和 ADF UI 项目的依赖项。服务部分部署正常,但是当我部署 ADF UI 项目时,它失败并显示 EJB:011224。 根据 Oracle 说明

javax.naming.NameAlreadyBoundException:[EJB:011224]无法绑定接口 - 当两个单独的应用程序 EAR 和 WAR 具有完全相同的 EJB 时,会发生 JNDI 命名冲突(文档 ID 1642388.1 )

从 WAR 文件中删除 bean class 是解决此问题的正确方法。 war 在 ear 部署后成功部署 要么 在 web.xml 中设置 metadata-complete="true" 标志将不会处理任何注释,并且部署成功。 但是这些变通办法没有帮助。

正如我所指出的,这是一个 "feature" 的 WLS 12c 版本,该项目可以在 WLS 11g 上运行。 应用程序本身分为几个项目,一个是 ADF 模型项目,它部署为 ADF 库 (JAR) 和 ADF 应用程序 (EAR),其中包含 Web 服务。 由于 ADF 库不允许自定义,为了避免提到的项目,您必须创建一个普通的 JAR 部署配置文件并删除所有与服务部分相关的 类,为此转到部署配置文件-> 项目输出-> 过滤并取消选中 类