1

タイトルとして、サーブレットを使用してjspプロジェクトで複数のアップロードファイルを実行したいと思います。私は新しいプロジェクトでそれをテストしています、そしてそれは問題なく行われました。次に、コードを含むプロジェクトに実装しようとしています。

boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
        } else {
            FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            List items = null;
            try {
                items = upload.parseRequest(request);
            } catch (FileUploadException e) {
                e.printStackTrace();
            }
            Iterator itr = items.iterator();
            while (itr.hasNext()) {
                FileItem item = (FileItem) itr.next();
                if (item.isFormField()) {
                } else {
                    try {
                        String itemName = item.getName();;
                        File savedFile = new File("D://uploadedFiles");
                        item.write(savedFile);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }

    }

しかし、私は常に次のようなエラーが発生します。

HTTP Status 500 -

type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: PWC1392: Error instantiating servlet class servlet.ManagementProdukServlet

root cause

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException

root cause

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileUploadException

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2 logs.

しかし、これをサーブレットにインポートしました。

import controller.Produk;
import dao.DataAksesAdmin;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

アップロードフォームが私のプロジェクトでは機能しないが、新しいプロジェクトでは機能するコードの何が問題になっているのか誰かに教えてもらえますか?また、エラーコードが表示されない場合もありますが、ブラウザで「接続がリセットされました」というエラーが発生します。それは私のプロジェクトに影響しますか?そして、その2つの私の問題の原因は何ですか?

英語が下手でごめんなさい。

4

2 に答える 2

2

このリンクを読んで、非常によく説明されています。サーブレット3.0は、apachefileupload1.3では正常に動作しません。JSP /サーブレットを使用してサーバーにファイルをアップロードするにはどうすればよいですか?

于 2013-05-08T08:58:52.200 に答える
1

ソースファイルにインポートしている場合でも、jarはクラスパスにある必要があります。ideから実行している場合は、必ずクリーンビルドを実行し、エラーが発生しなくなったら、プロジェクトをデプロイして開始します。戦争として展開する場合は、戦争に必要なjarファイルが含まれていることを確認してください。

于 2012-08-01T18:11:39.907 に答える