Java 将EJB3移植到EJB2

Java 将EJB3移植到EJB2,java,jakarta-ee,ejb-3.0,ejb-2.x,Java,Jakarta Ee,Ejb 3.0,Ejb 2.x,这是一种奇怪的情况。让我尽可能地解释一下 我有一个接口Client,它有一些方法抛出一个自定义异常。 我的EJB3 Remote扩展了这个接口客户端,并被注释为@Remote。 我的ejb3bean用于扩展远程服务器,并被注释为@Stateless 现在是奇怪的时候了。由于一个非常特殊的问题,我无法在我的应用服务器上部署任何EJB3 JAR。(问题不在于如何解决此部署问题。) 现在我必须将代码从EJB3降级到EJB2。 由于我的远程接口中的所有方法都必须抛出一个RemoteException(E

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

我有一个接口
Client
,它有一些方法抛出一个自定义异常。 我的EJB3 Remote扩展了这个接口
客户端
,并被注释为
@Remote
。 我的ejb3bean用于扩展远程服务器,并被注释为
@Stateless

现在是奇怪的时候了。由于一个非常特殊的问题,我无法在我的应用服务器上部署任何EJB3 JAR。(问题不在于如何解决此部署问题。)

现在我必须将代码从EJB3降级到EJB2。 由于我的远程接口中的所有方法都必须抛出一个
RemoteException
(EJB2规范),因此我不能再从我的
客户机
接口进行扩展

留给我的选项是创建一个EJB2Wrapper,它可以从
客户机
接口扩展,并在我调用的每个方法中扩展到远程接口

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


有更好的方法吗?

我想说,如果bean中的功能是从POJO开始的,那么您就不会有这么大的问题了。如果您有,您可以简单地部署为EJB3、EJB2、servlet、web服务或任何您想要的东西


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

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

到目前为止,没有比这更好的方法了