将EJB3移植到EJB2

时间:2011-12-04 15:28:35

标签: java java-ee ejb-3.0 ejb-2.x

这是一种奇怪的情况。让我尽可能地解释一下。

我有一个接口Client,其中包含抛出自定义异常的方法。 我的EJB3 Remote扩展了这个接口Client,并注释了@Remote。 我的EJB3 Bean用于扩展Remote,并带有注释@Stateless

现在出现了怪异。由于一个非常具体的问题,我无法在我的应用服务器上部署任何EJB3 jar。 (问题不在于我如何解决此部署问题。)

现在我必须将代码从EJB3降级到EJB2。 由于我的远程接口中的所有方法都必须抛出RemoteException(EJB2规范),因此我无法再从Client接口扩展。

我剩下的选项是创建一个EJB2Wrapper,它可以从Client接口和我调用的每个方法扩展到远程接口。

这为每个方法创建了丑陋的try catch块,因为我必须捕获RemoteException

有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

我会说如果你的bean中的功能以POJO的形式开始,你就不会遇到这么大的问题。如果你有这个,你可以简单地部署为EJB3,EJB2,servlet,web服务或任何你想要的东西。

也许最好的解决方案是将EJB3中的商品作为POJO提取,并将部署选择推迟到最后。我希望这个解决方案适用于EJB2Wrapper。你已经做了一些工作;即使您决定在未来使用REST Web服务而不是EJB,也最好投资一些有价值的东西。

答案 1 :(得分:1)

回答我自己的问题以关闭循环。

目前没有更好的方法可以做到这一点。