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
相关文章