2013-10-10 3 views
0

setMultipartConfig을 동적 추가 서블릿으로 호출하면 request.getParts();은 업로드 된 파일을 포함해야 할 때 빈 콜렉션을 반환합니다.동적 추가 서블릿에 setMultipartConfig를 적용하는 방법은 무엇입니까?

JSP

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
    </head> 
    <body> 
    <form action="/{context here}/hello" method="post" enctype="multipart/form-data"> 
     <input type="file" name="avatar"> 
     <button>Go</button> 
    </form> 
    </body> 
</html> 

서블릿 :

@WebServlet("/hello") 
public class HelloServlet extends HttpServlet { 
    private static final long serialVersionUID = 1; 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     request.getRequestDispatcher("/hello.jsp").forward(request, response); 
    } 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws IOException, ServletException { 
     // Here an empty collection even if I do select a file... 
     request.getParts(); 
    } 
} 

리스너는

@WebListener 
public class HelloListener implements ServletContextListener { 
    @Override 
    public void contextInitialized(ServletContextEvent event) { 
     Dynamic registered = event.getServletContext().addServlet("hello", HelloServlet.class); 
     registered.addMapping("/hello"); 
     registered.setMultipartConfig(getMultiPartConfig()); 
    } 
    @Override 
    public void contextDestroyed(ServletContextEvent event) {} 

    private MultipartConfigElement getMultiPartConfig() { 
     String location = ""; 
     long maxFileSize = -1; 
     long maxRequestSize = -1; 
     int fileSizeThreshold = 0; 
     return new MultipartConfigElement(
      location, 
      maxFileSize, 
      maxRequestSize, 
      fileSizeThreshold 
     ); 
    } 
} 

가 어떻게 dinamically 추가 서블릿과 함께 작업 할 수있는 다중 설정을해야합니까 동적으로 추가하는 방법?

가 사용 : 제이보스 EAP 6.1

+0

을 해결합니다 ("/ 안녕하세요") '선언은 바로 게시하기 전에 알아 냈 ... –

답변

0

@WebServlet("/hello") 선언을 제거하면 문제가`@WebServlet 것 같다