【问题标题】:Invoking EJB with changed interface使用更改的接口调用 EJB
【发布时间】:2016-07-07 17:14:53
【问题描述】:

今天我用 EJB 做了一些实验。

JavaEE 6

Websphere 8.0.x

我有一个定义一些远程方法的接口:

interface Calculator{
  int add(int x, int y);
  int mul(itn x, int y);
}

此接口由 EJB 实现。

此外,我还有另一个 EJB 调用 Calculator-EJB 从另一个应用程序(耳朵)。所以我总共部署了 两个ear文件,一切正常。

现在我更改了计算器界面,我放弃了 mul 方法, 但是在实现 EJB 类中仍然实现了 mul 方法, 我刚刚删除了@override 注释。 现在我用 EJB 重新部署了耳朵,实现了改变的接口。

令我惊讶的是,另一个耳朵应用程序仍然能够调用 mul 方法。

这是 EJB 标准的一部分吗?

之后我将 Calculator 接口重命名为 Calculator2 并重新部署了实现这个新接口的 EJB。

另一个耳朵应用程序,只有旧的计算器 接口,仍然可以调用新的方法 部署的 EJB 只实现了新的 Calculator2 接口。

同样的问题:这是 EJB 标准的一部分吗?

【问题讨论】:

    标签: jakarta-ee interface ejb


    【解决方案1】:

    这应该是 EJB3.1 规范的“无接口视图”。

    所有对 EJB 公开的方法都可以在没有接口的情况下访问。 但我不确定你是否可以让 NoInterfaceView 与接口并行,这可能不符合规范。

    【讨论】:

    • true,它的行为类似于无接口视图,但客户端在另一个应用程序/ear 中并使用(旧)接口进行注入。奇怪的是它的工作原理
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多