Jetty 11和Commons-fileupload

我正在将Jetty9更新为Jetty11。我将包从javax.servlet更新为jakarta.servlet,因为Servlet5.0是Jetty11的先决条件。但问题是当我使用commons-fileupload`-1.4.jar时,因为它仍在使用java.servlet包。

javax.servlet.http.HttpServletRequest.ServletFileUpload.isMultipartContent(request)

以上方法需要来自java.servlet包的参数。

commons的最新版本-fileupload-https://search.maven.org/classic/#search%7Cga%7C1%7Ca%3A%22commons-fileupload%22%20AND%20g%3A%22commons-fileupload%22

我们有什么方法可以解决此问题吗?


解决方案

commons-fileupload从Servlet3.1开始不需要。

实际上,不推荐将commons-fileupload与支持Servlet规范3.1(或更高版本)的容器结合使用。

自2018年以来甚至没有commons-fileupload的版本,也没有支持Servlet 3.1或更高版本的版本(commons-fileupload的最新版本支持Servlet 2.4及更早版本)

为什么?

从3.1开始,Servlet规范中内置了多部分功能。

每台支持Servlet 3.1的服务器现在都支持分部分文件上载。

这包括Jetty 9。

在代码中使用HttpServletRequest.getPart()API。 您可以通过WEB-INF/web.xml

中的@MultipartConfig注释和/或<multipart-config>描述符元素来配置它

参见:https://docs.oracle.com/javaee/7/tutorial/servlets011.htm

另请参阅过去有关这些功能的答案。

  • https://stackoverflow.com/a/2424824/775715

相关文章