Servlet 3.1 - 部件 - 方法getParts()未解析

时间:2016-10-13 12:02:35

标签: java file servlets methods undefined

我试图从导入javax.servlet.http.Part中使用getParts(); 但它告诉我'无法解决方法'getParts()'

package connec;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.LinkedList;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.entJa.sd.FileMeta;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;

(...)

public class MultipartRequestHandler {
    public static List<FileMeta> uploadByJavaServletAPI(HttpServletRequest request) throws IOException, ServletException {

    List<FileMeta> files = new LinkedList<FileMeta>();

    Collection<Part> parts = request.getParts();
    (...)

知道为什么它找不到这种方法吗?我知道它带有servlet 3.0,但我使用的是3.1,甚至尝试下载4.0(未完成的版本)。

Error:(29, 41) java: cannot find symbol
  symbol:   method getParts()
  location: variable request of type javax.servlet.http.HttpServletRequest

1 个答案:

答案 0 :(得分:1)

我使用Intellij IDEA,因此我获得了默认的jar lib - 包含了JavaEE-API-5。我下载了javaee-api-7.0.jar(和Maven一起),现在它正在工作!

确切地说,发生的事情是:Java EE 5包含Servlet API 2.5,它没有getParts()方法,因为它只在Servlet API 3.0中添加 - 另一方面Java EE 7包括Servlet API 3.1。