Java Struts アプリでのデフォルトのファイル構造の変更
-
09-06-2019 - |
質問
私はしばらく Struts を使って作業してきましたが、終了中のプロジェクトでは、メインの WAR ファイルからテンプレート (velocity .vm ファイル)、構成 (struts.xml、persistence.xml) を分離するように求められました。
次のようなデフォルトの構造がすべてあります。
application |-- メタINF -- Some configs are here |-- WEB-INF -- others here | |-- classes | | |-- META-INF | | `-- mypackage | | `-- class-files | `-- lib |-- css `-- tpl -- Template dir to be relocated
そして、テンプレートの配置先と構成ファイルの配置方法に関するドキュメント (おそらく struts.xml 内) が見つからないようです。
アプリケーションサーバーでも設定を使用する必要があると思います(私はJetty 5.1.14を使用しています)。
それで、それを構成する方法について何か分かりましたか?
ありがとう
テンプレートの場所を変更するということは、デザイナーがアクセスできる領域にテンプレートを配置することなので、変更が必要な場合でも、デザイナーはテンプレートを自分のコンピューターにロードし、編集し、再度アップロードすることができます。これは一般的なシナリオだと思います。したがって、おそらく私の研究には何かが欠けています。もしかしたら、間違った場所で設定に集中しているのかもしれません...何かご意見は ?
解決
Struts 構成ファイルに関する質問が正しく理解できていれば、それらは web.xml で指定されています。Struts サーブレット構成パラメータを見つけます。param-value には、ロードする XML ファイルのカンマ区切りのリストを指定できます。例えば:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
WEB-INF/config/struts-config.xml,
WEB-INF/config/struts-config-stuff.xml,
WEB-INF/config/struts-config-good.xml,
WEB-INF/config/struts-config-bad.xml,
WEB-INF/config/struts-config-ugly.xml
</param-value>
</init-param>
...
</servlet>
これを参照してください ストラットガイド 5.3.2に基づく。はい、これは 2.x にも当てはまります。
他のヒント
のために 永続性.xml, 具体的には、永続化ユニットを別個の JAR に配置して、Web アプリケーション WAR とは別にデプロイすることも、アプリケーション サーバーがサポートする内容に応じて両方を EAR アーカイブに一緒にデプロイすることもできます。たとえば、JBoss マニュアルではこれについて次のように説明されています。 EJB3 JAR を使用した EAR のデプロイ.
のために struts-config.xml 標準以外の場所を使用したい場合は、それをロードする Struts コードをオーバーライドする必要があると思います。
Velocity テンプレートについてはわかりません。
一般に、Web アプリケーションは、セキュリティ上の理由から、WAR 内からリソースのみを読み込みます。他にも使用できるテクニックはありますが、試してみるほうが簡単かもしれません 小冊子, 、これは別の JAR からリソースをロードできるように設計されたフレームワークのようです。
調べてみる必要があります velocity.properties
WEB_INF フォルダー内のファイルです。私見ですが、変更する必要があるのはここです。 テンプレートルート プロパティを変更する file.resource.loader.path
.
それが役立つことを願っています、Petr