applicationContext.xmlをWEB-INFフォルダーに配置する方法はありますか?WEB-INF \ classesフォルダーに配置できることがわかっているので、WEB-INFフォルダーに固有です。
要件に従って、クライアントはセットアップに従ってapplicationContext.xmlを構成できる必要があります。
WEB-INFフォルダーからapplicationContext.xmlにxml構成ファイルをインポートすることを考えた別のオプションがあります。しかし、私はまだそれを試していませんでした、そしてそれがどれほど実行可能かわかりません。
3 に答える
はい、これを行うことはできますが、クラスパスはそれらを配置するためのかなり論理的な場所です。
web.xmlの「contextConfigLocation」の定義で、セクションに/WEB-INF/applicationContext.xmlを追加するだけです。
これをweb.xmlに追加すると、applicationContextにアクセスできます。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
要件の観点からは、WEB-INFまたはWEB-INF / classesディレクトリに配置することにまったく違いはありません。どちらの方法でも、デプロイ後に展開されたWAR / EARからアクセスする必要がありますが、これは不可能な場合があります。アプリサーバーが爆発しない場合(つまり、JBossはWARと直接連携できます)。
IMO、あなたのための解決策は、WebApplicationContext実装の使用をやめることです。構成ファイルを手動で読み取り、ServletContextListenerで初期化する必要があるDefaultListableBeanFactoryを使用します。このようにして、ApplicationServer環境からapplicationContextFileへのパスを取得できるため(JNDIまたは適切な方法を使用)、ApplicationServerが存在するマシンのどこにでも配置できます。
少なくとも、あなたが持っているのとまったく同じ理由で、それが私たちがしたことです。