从远程EJB方法返回返回类型的超类

时间:2010-04-07 09:25:14

标签: java ejb-3.0 override return-type

假设我有远程接口A:

@Remote
public interface A {
  public Response doSomething();
}

并实施:

@Stateless
public class B implements A {
  public BeeResponse doSomething() {...}
}

其中:

  • BeeResponse扩展了Response。
  • 响应位于EJB-API jar中,BeeResponse位于实现jar中。
  • 响应和BeeResponse有不同的serialVersionUID

我的假设是,来自B的响应的解组将失败,我是否正确?

2 个答案:

答案 0 :(得分:1)

我测试了这个在OpenEJB中运行,它看起来像我预测的那样,客户端不理解Bean的响应,因为客户端系统中缺少BeeResponse类。

它一直有效,直到客户端开始反序列化响应。但是,串行版本UID在这里没有任何影响,因为客户端甚至无法创建该类。

所有这一切现在都很有意义,但我有点“希望”会有某种神奇的东西让它起作用: - )

答案 1 :(得分:0)

从Java 5开始,这是允许的,因此它应该可以工作。我建议尝试一下,如果你收到错误就回来。