1

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

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

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

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

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

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

有一个更好的方法吗?

4

2 回答 2

2

我会说,如果您的 bean 中的功能以 POJO 的形式出现,那么您将不会遇到这么大的问题。如果您有,您可以简单地部署为 EJB3、EJB2、servlet、Web 服务或任何您想要的。

也许最好的解决方案是将 EJB3 中的优点作为 POJO 提取并将部署选择推迟到最后。我更喜欢这个解决方案而不是EJB2Wrapper. 您已经必须做一些工作;即使您决定将来使用 REST Web 服务而不是 EJB,最好还是投资一些有价值的东西。

于 2011-12-04T15:33:52.267 回答
1

回答我自己的问题以结束循环。

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

于 2012-08-25T13:00:10.290 回答