2016-09-13 3 views
0

私はOSGIフェリックスバンドルとしてデプロイされたjavaプロジェクトを開発しました。 このプロジェクトには2つのパッケージが含まれています: - 最初のパッケージには、ファイルへの/からのメッセージの書き込み/読み込みを行うクラス(CLASS_1)のみが含まれています。 - 2番目のパッケージには、@onMessageメソッド(およびその他のすべての必須メソッド)を含むwebSocketServer(@ServerEndPoint)と、websocketを登録する別のクラスの2つのクラスが含まれています。@ ServerEndPointクラスの@onMessageメソッドでのファイルアクセス

@OnMessageの2番目のパッケージにあるメソッドでは、最初のパッケージにあるメソッドを呼び出して、次のメッセージを格納します。

CLASS_1のメソッドを使用しないとwebsocketが正常に動作します。しかし、私はそれを使用するとき、実行時(1つのメッセージが到着する)、私はそのクラス(CLASS_1)のClassNotFoundExceptionを持っています。私は何が問題なのか分からない。 pom.xmlファイルに何かがないかもしれませんか? (私はMavenを使用しています)

誰かが私を助けることができますか?

ありがとうございます。

答えて

0

OSGi概説のサービスコンポーネントアーキテクチャを使用する必要があります。あなたの状況では、CLASS_1は他のバンドルから(インターフェイス経由で)使用されるサービスを公開する必要があります。また、サービスを注入して使用するためにコンポーネントクラスを定義する必要があります。

apache.felix.scr、apache blueprint、aQuteなどのサービスコンポーネントアーキテクチャーを実装するためのさまざまなライブラリーがあります。それぞれを精査してどのプロジェクトに最適かを判断することをお勧めします。

関連する問題