4

画像アップロード モジュールを持つアプリケーションを開発しています。マルチパートフォームデータを取得するために、次のコードを作成しました。

リスト項目 = servletFileUpload.parseRequest(request);

私はcommons-fileupload-1.2.1.jarこの目的のために使用しています。ビルドをjboss-5.1.0.GAサーバーにデプロイすると、ファイルのアップロード中にエラーが発生します。エラーは次のとおりです。

java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List; org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126) で com.bworld.action.UploadSubscriptionImage.processRequest(UploadSubscriptionImage.java:46) で com.bworld.action.UploadSubscriptionImage.doPost(UploadSubscriptionImage) .java:145) で javax.servlet.http.HttpServlet.service(HttpServlet.java:637) で javax.servlet.http.HttpServlet.service(HttpServlet.java:717) で org.apache.catalina.core.ApplicationFilterChain. org.jboss の org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) の internalDoFilter(ApplicationFilterChain.java:290)。

この問題から回復する方法を教えてください。

4

4 に答える 4

1

間違った jar を使用しています。あなたのクラスパスは、あなたが思っているものとは異なるものを参照しています。Jboss ライブラリとクラスパスで、名前が似ているがバージョンが異なる jar を確認してください。次に、完全なクリーン + ビルド サイクルを実行し、jboss tmp ディレクトリを削除して、サーバー上でクリーン + パブリッシュを実行します。ここに別のSOの答えがあります

于 2012-05-29T14:04:08.637 に答える
1

commons file-upload jar が WEB-INF/lib フォルダーにないか、JBoss によってすでに出荷されているため、WEB-INF/lib で複製しないでください

関連: http://techblog.bozho.net/?p=866

于 2012-05-29T14:04:12.457 に答える
0

これは古い質問であることは知っていますが、私の答えは誰かを助けるかもしれません。これはいくつかの理由で発生する可能性があります

  1. Bonzhoが述べたように、commons file-upload jarがWEB-INF/libフォルダーにない可能性があります
  2. commons file-upload は最新の tomcat および jboss サーバーに同梱されているため、プロジェクトでその jar を外部で使用する必要はありません。しかし、それを使用したとしましょう。クラスパスから削除して、クリーンビルドを行うことができます。おそらく動作するはずです
  3. ただし、 java.lang.NoSuchMethodError: というエラーが表示される場合があります。これは、使用した commons-fileupload jar からの古いインポートのエラーが Eclipse に表示されないために発生する可能性があるため、プロジェクトのクラスを調べて作成します。 importステートメントがどちらかまたは両方ではないことを確認し import org.apache.tomcat.util.http.fileupload.*import org.apache.commons.fileupload*ください

常にポンポンを使用することをお勧めします。

于 2016-06-07T04:54:14.110 に答える