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

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

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

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

我剩下的选项是创建一个EJB2Wrapper,它可以从Client接口扩展,并且在我调用的每个方法中都可以进入Remote Interface。

这将为每种方法创建难看的try catch块,因为我必须捕获RemoteException

有一个更好的方法吗?

最佳答案

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

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

07-24 15:17