web-dev-qa-db-ja.com

struts.xmlを配置する場所

Struts2では、クラスパスにstruts.xmlを含める必要があるため、WEB-INFの下に置くことはできなくなりました。したがって、プロジェクトをデプロイする方法は、プロジェクトをWEB-INF/classesの下に貼り付け、../struts2.xmlを含めることでした。

2つの問題:

  1. Eclipseは、再構築を行うときにクラスフォルダーをクリーンアップするため、struts.xmlを削除します。
  2. Eclipseは私のプロジェクトブラウザーにclassesフォルダーを表示しないので、そもそも構成ファイルを貼り付けるには不十分な場所です。

Struts2 Eclipse開発者はこれをどのように行っていますか?

17
ariso

Struts.xmlをソースディレクトリのルートに配置するか、追加のリソースソースディレクトリを設定してそこに配置することができます。 Eclipseは、コンパイルを行うときに、それをWEB-INF/classesに非常に喜んでコピーします。

15
Peter Kelley

パーティーに遅れました。Webアプリケーションのクラスパスの任意のディレクトリでstruts.xmlを構成できますが、strutsの場合は、以下のようにweb.xmlのフィルター構成の「config」initパラメーターを使用して場所を指定します。 .xmlファイルは「/ com/resources /」ディレクトリにあります。

   <filter>
        <filter-name>action</filter-name>
        <filter-class>org.Apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
         <init-param>
            <param-name>config</param-name>
            <param-value>struts-default.xml,struts-plugin.xml,/com/resources/struts.xml</param-value>
         </init-param>
    </filter>

Config initパラメーターを指定しない場合、struts2はデフォルトで3つの値 "struts-default.xml、struts-plugin.xml、struts.xml"を取ります。以下に、これら3つのファイルを構成するstruts2Dispatcherクラスコードを示します。構成マネージャー。

String configPaths = (String)this.initParams.get("config");
if (configPaths == null) {
  configPaths = "struts-default.xml,struts-plugin.xml,struts.xml";
}
String[] files = configPaths.split("\\s*[,]\\s*");
for (String file : files)
  if (file.endsWith(".xml")) {
    if ("xwork.xml".equals(file))
      this.configurationManager.addContainerProvider(createXmlConfigurationProvider(file, false));
    else
      this.configurationManager.addContainerProvider(createStrutsXmlConfigurationProvider(file, false, this.servletContext));
  }
2

私はEclipseを使用していないため、この回答は要件に固有ではありませんが、Mavenを使用しているため、アプリケーションに必要なすべての「リソース」が「resources」という別のフォルダーにあり、アプリケーションがビルドされると、これらのファイルは次のようになります。適切な場所に自動的にコピーされます。 Netbeansでは、フォルダ内のファイルが利用可能であり、同様の設定でEclipseを使用している人がいることを私は知っています。

私たちのプロジェクトは appfuse から始まったので、これらの構成のほとんどは事前に作成されていることを指摘しておく必要があります。あなたはそれがそこでどのように行われたかを見ることができます。

1

Struts 1.2では、struts-config.xmlをクラスパス(WEB-INFフォルダーの下)に配置する必要がありましたが、Struts 2.0では、src/main/resourcesフォルダーに配置する必要があります。

ドキュメントを参照してください Struts 2ドキュメント ここに

このディレクトリにstruts.xmlを貼り付けたところ、プロジェクトは正常に実行されました。

My project structure looks like this

0
Upendra Sharma

Struts.xmlファイルをsrc(Java Resources)パッケージに配置できます。コンパイルプロセスのstruts.xmlファイルがROOT/WEB-INF/classesディレクトリ内に生成される場合。

同じエラーが何度も発生する場合は、支柱の動作を確認してください。アプリケーションのデプロイされたパスを確認すると、必要なものを見つけることができます。 (struts.xmlファイル)

0
Sadun89

Struts 2プロジェクトでは、struts.xmlファイルがパッケージおよびライブラリとともにsrc(Java Resources)フォルダーに追加されます。

下の画像を参照してください。

Struts 2 project directory view in Eclipse

Struts 2プロジェクトの構造について詳しく知りたい場合は、 このリンク にアクセスしてください。

:Eclipseでは、ファイルをsrcフォルダーに直接貼り付けることはできません。したがって、最初にプロジェクトの他の場所(たとえば、「WebContent」フォルダー)に貼り付けてから、移動機能を使用して適切な場所(つまり「src」フォルダー)に配置する必要があります。

0
Sarin J S