Struts2では、クラスパスにstruts.xml
を含める必要があるため、WEB-INFの下に置くことはできなくなりました。したがって、プロジェクトをデプロイする方法は、プロジェクトをWEB-INF/classes
の下に貼り付け、../struts2.xml
を含めることでした。
2つの問題:
struts.xml
を削除します。Struts2 Eclipse開発者はこれをどのように行っていますか?
Struts.xmlをソースディレクトリのルートに配置するか、追加のリソースソースディレクトリを設定してそこに配置することができます。 Eclipseは、コンパイルを行うときに、それをWEB-INF/classesに非常に喜んでコピーします。
パーティーに遅れました。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));
}
私はEclipseを使用していないため、この回答は要件に固有ではありませんが、Mavenを使用しているため、アプリケーションに必要なすべての「リソース」が「resources」という別のフォルダーにあり、アプリケーションがビルドされると、これらのファイルは次のようになります。適切な場所に自動的にコピーされます。 Netbeansでは、フォルダ内のファイルが利用可能であり、同様の設定でEclipseを使用している人がいることを私は知っています。
私たちのプロジェクトは appfuse から始まったので、これらの構成のほとんどは事前に作成されていることを指摘しておく必要があります。あなたはそれがそこでどのように行われたかを見ることができます。
Struts 1.2では、struts-config.xmlをクラスパス(WEB-INFフォルダーの下)に配置する必要がありましたが、Struts 2.0では、src/main/resourcesフォルダーに配置する必要があります。
ドキュメントを参照してください Struts 2ドキュメント ここに
このディレクトリにstruts.xmlを貼り付けたところ、プロジェクトは正常に実行されました。
Struts.xmlファイルをsrc(Java Resources)パッケージに配置できます。コンパイルプロセスのstruts.xmlファイルがROOT/WEB-INF/classesディレクトリ内に生成される場合。
同じエラーが何度も発生する場合は、支柱の動作を確認してください。アプリケーションのデプロイされたパスを確認すると、必要なものを見つけることができます。 (struts.xmlファイル)
Struts 2プロジェクトでは、struts.xmlファイルがパッケージおよびライブラリとともにsrc(Java Resources)フォルダーに追加されます。
下の画像を参照してください。
Struts 2プロジェクトの構造について詳しく知りたい場合は、 このリンク にアクセスしてください。
注:Eclipseでは、ファイルをsrcフォルダーに直接貼り付けることはできません。したがって、最初にプロジェクトの他の場所(たとえば、「WebContent」フォルダー)に貼り付けてから、移動機能を使用して適切な場所(つまり「src」フォルダー)に配置する必要があります。