0

I am learning how to use a content repository and I am using Jackrabbit. I have a Spring 3.x application that I successfully have connected with the content repository. I read about deployment models (http://jackrabbit.apache.org/deployment-models.html) and I wonder what type of deployment model I use? I have installed Jackrabbit as a module in JBoss 7 server, but that is esentially the same as bundling the Jackrabbit lib with the application so I guess that I use the Application bundle model?

And then the next question: which option is preferred?

I am currently using this configuration: http://wiki.apache.org/jackrabbit/ExamplesPage

<bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl">
    <constructor-arg index="0" ref="config" />
</bean>
<bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
    <constructor-arg index="0" value="./repository.xml"/>
    <constructor-arg index="1" value="." />
</bean>
4

1 に答える 1

2

そのページにリストされている 3 つの展開モデルは、利用可能なニュアンスの範囲を完全には反映していません。

たとえば、アプリケーションバンドルと共有 J2EE リソースモデルの一見したところの違いは、前者ではアプリケーションごとにリポジトリインスタンスがあり、後者ではアプリケーションサーバーごとにインスタンスがあることです。アプリ サーバーで 1 つのアプリケーションしか実行していない場合 (ほとんどの人がそうであることを願っています)、その違いは意味がないように思えます。

ただし、別の可能性のある違いがあります。アプリケーションバンドルでは、アプリがリポジトリを直接作成することを期待していますnew TransientRepository().login()が、共有 J2EE リソースでは、リソースとしてアプリサーバーによって作成および管理する必要があります。アダプタ。

とはいえ、一部のコンテナーではアプリケーションごとのリソース アダプターのようなものを作成でき、コードを (JBoss AS7 のモジュールとして) アプリ サーバーにパッケージ化し、コード内にリポジトリを作成できると思いますこれにより、境界が少しぼやけます。私が言ったように、ニュアンス。コードでリポジトリを作成している場合、モジュールを使用していても、アプローチをアプリケーションバンドルとしてカウントすると思います。

とにかく、このとりとめのないことは、最も興味深い違いは、リポジトリが作成および管理される方法と、その結果であると私が思うということです。コードでこれを行うと、XML をいじる必要がないため、おそらく簡単に実行できます。ただし、アプリサーバー構成でこれを行うと、アプリサーバーが自動的にプーリングやトランザクションなどを処理します。それは私にとって非常に魅力的に聞こえます。

アクセス制御 (必要な場合) をユーザー ログインに統合すると、結果が生じる場合もあります。アプリ サーバーが両方を管理している場合は、それらを統合する方が簡単な場合があります。またはもっと難しい、あなたは決して知りません。

驚くべき同期性により、今日の午後、私の古いプロジェクトのほこりを払い、JBoss AS7 で Jackrabbit をリソース (JCRDemo) としてうまく機能させようとしましたこれは興味深いかもしれません。すべての配管が含まれていますが、興味深いことは何もありませんtoString。リポジトリのルート ノードをレンダリングするサーブレットがあるだけです。

于 2013-07-27T20:52:50.110 に答える