8

ファイルのアップロードを処理するために apache FileUpload を使用しています。ジェットと一緒に使っています。サーブレットはマルチパート リクエストを認識しますが、実行時に NoClassDefFoundError 例外をスローします。

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
  throws ServletException, IOException 
{
  boolean isMultipart = ServletFileUpload.isMultipartContent(req);
  if (isMultipart) {
    try {
      FileItemFactory factory = new DiskFileItemFactory();

      ServletFileUpload upload = new ServletFileUpload(factory);

      List items = upload.parseRequest(req); //  exception
      ...

スロー:

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
   at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)

のせいで:

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream

commons-fileupload-1.2.2.jar 以外に含める必要がある追加の jar はありますか?

私の目標は、単一のファイルをアップロードしてディスクに書き込むことです。

ありがとう

4

2 に答える 2

14

CommonsIOをクラスパスに追加する必要があります。CommonsFileUploadはそれに依存しています。

于 2011-03-17T16:43:51.293 に答える
4

以下の依存関係を追加します

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
于 2015-09-16T21:15:53.890 に答える