0

ポート 80 の IIS Web サーバーでフロントエンドを実行しています。これは、angular.js フレームワークを使用して HTML5 で記述されています。

ポート 8084 の GlassFish アプリケーション サーバーで RESTful バックエンドを実行しています。Jersey JAX-RS 実装を使用して記述されています。

バックエンドは、Singleton クラスのコンストラクターで作成された Neo4J データベースを使用します。したがって、そのクラスのインスタンスが存在しない場合、データベースが作成されます。インスタンスが存在する場合は、属性として格納された同じ GraphDatabaseService を使用します。これは、Lock Store エラーを防ぐために行います。クラスがシングルトンでない場合、同じデータベース パスに新しい GraphDatabaseService を作成しようとするたびに、一度に 1 つしか作成できません。

しかし、私のアプリケーションのニーズは変わりました。ログインが必要で、すべてのユーザーが独自のデータベースを取得します。ユーザー名はデータベース パスで使用され、(現在もまだ) シングルトン クラスに渡される必要があります。

すべてのユーザーが独自のデータベースを取得し、ユーザーが行うすべての RESTcall がそのデータベースで実行されるように、セットアップを変更するにはどうすればよいですか。ユーザーは同時に Web アプリケーションを使用できる必要があります。

4

2 に答える 2

0

httpRequestからユーザー情報を取得する必要があります。
HTTPリクエストにアクセスするにはどうすればよいですか?
とにかく、クラスインスタンスをhttpセッションにバインドする最良の方法は、ステートフルejbを使用することですが、RESTfulアーキテクチャはステートフルになるように設計されていません。実際、各RESTリクエストは独自のhttpセッションで発生します。詳細については、https://community.jboss.org/thread/179777
を お読みください。

于 2013-02-21T14:12:11.083 に答える