2011-06-24 14 views
0

Openfireサーバ(バージョン3.7.0)をJavaアプリケーションに埋め込むことは可能ですか?Openfireを埋め込む

Eclipseでサーバー上で統合テストを実行しようとしています。しかし、Openfireはスタンドアロンモード(ServerStarterのブートストラップクラスを見つけることができる状態)であるため、サーバがシャットダウンしようとすると、発生したくないSystem.exit(0)が呼び出されます。

これを防ぐ方法はありますか?つまり、Openfireがブートストラップクラスを見つけるのを意図的に妨げることはありませんか?

答えて

3

私はかなり簡単で、Openfireを手動で設定しようとするよりもずっと簡単です。

Openfireをマシン(Mac、PCなど)にインストールし、組み込みデータベースを使用して管理コンソールでセットアップし、必要に応じてopenfire.xmlからadminConsoleをコメントアウトします。

ユニットテストを実行する場所にディレクトリをコピーします。正確な再現性を確保したい場合は、テストを実行するたびにディレクトリを解凍して解凍することをお勧めします。

すべてのjarファイル(openfire、hsqldb、mail、bouncycastle、jasperなど)が追加されていることを確認してください。

これで正常に起動して停止することができます。 Openfireには1つの変種があります。それはシングルトン指向であるため、シャットダウンしてもそのシングルトンインスタンスはそのまま残っているので、単体テストのようなもので使用したい場合は、XMPPServer.getInstance()を呼び出してインスタンスが存在するかどうかをチェックしなければなりませんgetInstance()がnullを返す場合は、コンストラクタを呼び出します。

私は役立つことを願っています。

関連する問題