J2EE Beanの場合、私はJava Swingアプリケーション用に開発されたコードを再利用しています。 JOptionPane.showMessageDialog()は残念なことに一般的に使用されます。 J2EEアプリケーションで再利用されないコードセクションでは大部分が実行されますが、コードの下位レベルではJOptionPane.showMessageDialog()のインスタンスがあります。明らかにこれにより、サーバー上にダイアログボックスが表示されます。これは避けたいものです。アプリケーションサーバーでコードが実行されているかどうかを検出する最善の方法java
最初の手順として、サーバー上にダイアログボックスが表示されないようにしたいと思います。
誰かが(私はどちら覚えていません)、いくつかのイベントや塗料キューに覗き提案: それは次のようになります。
// old code: JOptionPane.showMessageDialog(msg);
if (someEventQueue.size() == 0) // <== consider this pseudo-code
Log.log(msg); // I am running on a server. Tell the log.
else
JOptionPane.showMessageDialog(msg); // I have a user made of meat. Tell him!
私は本当にはその作業をやったことがなかったです。あなたならどうしますか?
私はそれを正しい方法でやろうとします。 'logToUser'メソッドとのインタフェースを持ち、そのインスタンスをコード内で渡すか、静的なフィールドに渡します(他のものが実行不可能な場合)。ログする場所で、そのメソッドを呼び出します。サーバー上のコードのユーザーは実装を提供する必要があり、Swingアプリケーションは別のものを提供します(AndroidやSWT、または別のアプリケーションが別のアプリケーションを提供する必要があります)。実装が設定されているかどうかを早めにチェックし、そうでない場合は例外をスローしてください。 – mihi