5
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

次のjarファイルを追加しました:

commons-fileupload-1.2.1.jar
commons-logging-1.1.1.jar
freemarker-2.3.16.jar
ognl-3.0.jar
servlet-api.jar
struts2-core-2.2.1.jar
xwork-core-2.2.1.jar
4

10 に答える 10

2

私は毎日Struts2/Tomcat6(Eclipseで)を使用していますが、時々この例外が発生します(行き来します!!!)。それをなくすのに役立つのは、ビルドパスの順序を並べ替えることです。そこで、プロジェクトのプロパティに移動し(右クリック -> プロパティ)、Java ビルド パスを上に移動し、struts-2-core .jar ...ここに画像の説明を入力

于 2012-08-21T08:22:49.280 に答える
1

私は同じ例外を抱えていましたが、私の場合はweb.xmlファイルのエラーでした。

そうだった:

<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.
    StrutsPrepareAndExecuteFilter
</filter-class>

filter.ご覧のとおり、 の前後に改行がありStrutsPrepareAndExecuteFilterます。

それらを削除するだけで問題を解決しました:

<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

これがあなたのケースでもある場合は、問題が解決する可能性があります。

于 2012-09-16T13:31:55.473 に答える
1

私は同じ問題を抱えています。しかし、私は解決策を見つけました。

struts2 パッケージでさえ、相互に互換性のない jar ファイルのすべてのバンドルが含まれています。以下のファイルに互換性がある場合のみ。私が言及したjarファイルは互換性があり、Strutsサイトからダウンロードして使用できます(ライブラリに追加する前に、既存のバージョンを必ず削除してください)

  • freemarker-2.3.8.jar
  • ognl-2.6.11.jar
  • struts2-core-2.2.1.jar
  • xwork-core-2.2.1.jar
于 2012-10-05T05:41:36.630 に答える
0

編集: 私は再び同じ問題を経験しました。解決策は非常に簡単です(以下の間違いを犯していない場合)。ライブラリ(この場合はstruts2)をWEB-INF/libフォルダーに配置する必要があります。そのためには、「。jar」を直接コピーしないでください。代わりに、「プロジェクトを右クリック」>「プロパティ」>「デプロイメントアセンブリ」>「追加」に移動します。>ライブラリの現在のパスを追加します。Mavenを使用しているときに機能しました(「MavenDependencies」フォルダーを選択しました)。


編集前:

ここで答える義務があると感じました。同じ問題が発生し、インターネットで答えが見つかりませんでした。とても簡単です。(私は何度もバカと呼んでいました笑)

<filter>と<filter-mapping>のストラット構成を間違ったweb.xmlに配置していると思います。サーバーではなく、アプリケーションのxmlである必要があります。

少なくとも、それが私に起こったことです。私はJavaWebアプリケーションを初めて使用するため、ドキュメント(web.xml)の違いがわからず、重要なことを忘れていました。常に例をダウンロードして、現在のプロジェクトと比較してください。

于 2012-08-20T02:46:11.277 に答える
0

あなたはJARファイルを入れると言った...

web-inf フォルダー内、および eclipse 動的 Web プロジェクトの下の build-path>libraries 内

JAR ファイルは次の場所にある必要があります

.../webapps/yourWebapp/WEB-INF/lib

それらを WEB-INF ディレクトリに直接配置すると、Web コンテナーはそれらを webapp のクラスパスに配置しません。

于 2011-04-12T10:16:21.860 に答える
0

jar ファイルのパスが無効です。サーバー上の jar ファイルを確認し、jar ファイルに有効なパスを設定してください。

于 2012-08-21T08:32:50.090 に答える
0

これは主に、struts2-core jar ファイルの互換性の問題が原因でした。この org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter を使用する場合は、struts2-core 2.3.15 バージョン以降を使用する必要があります

于 2013-11-13T09:14:32.807 に答える