2011-12-04 26 views
1

これは奇妙な状況です。私ができる限りそれを説明しましょう。EJB3からEJB2への移植

私はカスタム例外をスローするメソッドを持つClientというインターフェースを持っています。 私のEJB3リモートはこのインターフェイスを拡張してClientであり、@Remoteという注釈が付けられました。 私のEJB3 Beanはリモートを拡張するために使用され、@Statelessという注釈が付けられました。

今や奇妙なことが起こります。非常に特定の問題のため、私はアプリケーションサーバーにEJB3 jarをデプロイできません。 (問題は、このデプロイメントの問題を解決する方法ではありません。)

ここで、コードをEJB3からEJB2にダウングレードする必要があります。 私のリモートインターフェイスのすべてのメソッドはRemoteException(EJB2仕様)を投げなければならないので、私はClientインターフェイスからこれ以上は拡張できません。

私が残しておきたいのは、Clientインターフェイスから、そしてリモートインターフェイスに呼び出す各メソッドから拡張できるEJB2Wrapperを作成することです。

RemoteExceptionを捕まえなければならないので、これはそれぞれのメソッドに対して醜いtry catchブロックを作成します。

これを行うより良い方法はありますか?

答えて

1

ループを閉じるために私自身の質問に答える。

今のところこれを行うには良い方法はありません。

2

あなたのBeanの機能がPOJOとして機能していれば、大きな問題はないと思います。それがあれば、EJB3、EJB2、サーブレット、Webサービスなど、必要なものだけをデプロイすることができます。

おそらく最も良い解決策は、POJOとしてEJB3から製品を抽出し、最後まで展開の選択を延期することです。私はEJB2Wrapperにこの解決策を好むでしょう。あなたはすでにいくつかの仕事をしなければなりません。将来EJBの代わりにREST Webサービスを使用することに決めたとしても、価値のあるものに投資することをお勧めします。

関連する問題