0

私の会社では、セミカスタム パーシスタンス レイヤーを使用して Neo4j DB にデータを保存するアプリケーションを開発しています。Userその永続化レイヤーを使用して、従来のクラス : 、Groupなどを使用してセキュリティ レイヤーを宣言しPrivilegeました。

これらの要素は、Neo4J DB に自然に保持されます。

残念ながら、カスタム JAAS レルムを宣言し、Neo4J DB をバックエンドとして使用する必要があります。そのレルムを可能な限り最速の方法で記述するために、( maven のおかげで<dependency/>) そのレルムでアプリケーション コードを使用することにしました。

残念ながら、JAAS レルムをデプロイすると、さまざまな理由でアプリケーション コードのロードに失敗することがわかりました。

java.lang.RuntimeException: EJB Container initialization error 
Exception while loading the app : EJB Container initialization error 

JAAS レルムを に展開しているという事実に関連しているの${domaindir}/libでしょうか?

とにかく、1つのglassfish JAASレルムがドメインにデプロイされた1つのアプリケーションとコードを共有する解決策はありますか?

4

1 に答える 1

0

あなたは、JAAS クラスが /domain/lib にデプロイされていると言います (これは正しいようです)。アプリケーション クラスが WAR または EAR としてデプロイされていると仮定します。

JAAS レルムの実装が WAR/EAR 内のクラスに依存している場合、クラスローダー階層が原因でクラスロードの問題が発生します。/domain/lib クラスローダーは、WAR/EAR 内のクラスにアクセスできません。

依存するクラスを別の jar に抽出し、/domain/lib にも配置する必要があります。

クラスローダー階層の詳細については、http://docs.oracle.com/cd/E18930_01/html/821-2418/beadf.html を参照してください

于 2012-09-18T08:21:22.810 に答える