2013-05-27 2 views
2

즉,이 같은 서블릿을 등록, 부두가 포함 된 사용 :서블릿 3.0 파일 업로드 (@MultipartConfig)

ServletContextHandler context = new ServletContextHandler(server, "/", false, false); 

s = new UploadServlet(jee); 
context.addServlet(new ServletHolder(s), "/upload"); 

발발했습니다 MultipartConfig 주석을 존중하지 않는 것 같습니다. Servlet 3.0에서 파일 업로드를 지원하는 URL을 어떻게 등록합니까? 방파제 코드를 리버스 엔지니어링하면 다음과 같아야합니다. 그러나 "멀티"는 무엇입니까 ???

ServletHolder sh = new ServletHolder(new UploadServlet(jee)); 
Object multi; 
sh.getRegistration().setMultipartConfig(new MultipartConfigElement(multi)); 
context.addServlet(sh, "/upload"); 

답변

0

야곱 부두와

통계 처리는 현재 WebAppContexts에지지하고 또한 특수 처리가 활성화 된 경우에만. http://www.eclipse.org/jetty/documentation/current/annotations.html

그래서하는 WebAppContext에 ServletContextHandler을 변환하고 다음 목록과에 setConfigurationClasses()를 호출 :

"org.eclipse.jetty.webapp.WebInfConfiguration", 
    "org.eclipse.jetty.webapp.WebXmlConfiguration", 
    "org.eclipse.jetty.webapp.MetaInfConfiguration", 
    "org.eclipse.jetty.webapp.FragmentConfiguration", 
    "org.eclipse.jetty.webapp.JettyWebXmlConfiguration", 
    "org.eclipse.jetty.annotations.AnnotationConfiguration" 
여기 독립 실행 형 부두와 웹 앱 주석을 사용하는 방법에 대한 부두-9 DOCO 회담

및 클래스 패스에 반드시 주석 처리 관련 항아리 만들기 - 다음은 부두 배포판에서을 : javax.annotation의-1.1.0.v201108011116.jar org.objectweb.asm-3.1.0.v200803061910.jar

1 월

+0

감사합니다. 귀하의 게시물에있는 링크를 확인했지만 독립형 부두에 대해서만 임베디드 부두에 대한 주석을 "사용 설정"하는 것에 대해서는 아무 것도 볼 수 없었습니다. – Jacob

+0

@Jacob 여기 [Servlet 3.0 Annotations에서 Embedded Jetty를 사용하는 예] (https://github.com/jetty-project/embedded-servlet-3.0/blob/master/src/test/java/com/company/foo)가 있습니다. /EmbedMe.java). –

1

MultipartConfigElement에는 실제로 여러 생성자가 있습니다. 하나는 MultipartConfig 주석의 인스턴스를 취합니다. 다른 사용자는 위치 또는 모든 사용 가능한 옵션 만 매개 변수로 사용합니다. 따라서 모든 기본값을 사용하는 가장 쉬운 방법은

sh.getRegistration().setMultipartConfig(new MultipartConfigElement(""));