Jetty 11 和 commons-fileupload
Jetty 11 and commons-fileupload
我正在将 Jetty9 更新到 Jetty11。我将包从 javax.servlet 更新为 jakarta.servlet,因为 servlet 5.0 是 Jetty11 的先决条件。但问题是当我使用 commons-fileupload`-1.4.jar 因为它仍在使用 java.servlet package.
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
从 Servlet 3.1 开始不再需要。
事实上,不推荐将 commons-fileupload
与支持 Servlet 规范 3.1(或更新版本)的容器结合使用。
自 2018 年以来甚至没有 commons-fileupload
版本,也没有支持 Servlet 3.1 或更新版本的版本(commons-fileupload
的最后一个版本支持 Servlet 2.4 及更早版本)
为什么?
自 3.1 起,Multipart 功能已内置到 Servlet 规范中。
所有支持 Servlet 3.1 的服务器现在都支持分段文件上传。
包括 Jetty 9。
在代码中使用HttpServletRequest.getPart()
API。
您可以通过 @MultipartConfig
注释 and/or 或 WEB-INF/web.xml
中的 <multipart-config>
描述符元素来配置它
参见:https://docs.oracle.com/javaee/7/tutorial/servlets011.htm
另请参阅过去关于这些功能的回答。
我正在将 Jetty9 更新到 Jetty11。我将包从 javax.servlet 更新为 jakarta.servlet,因为 servlet 5.0 是 Jetty11 的先决条件。但问题是当我使用 commons-fileupload`-1.4.jar 因为它仍在使用 java.servlet package.
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
从 Servlet 3.1 开始不再需要。
事实上,不推荐将 commons-fileupload
与支持 Servlet 规范 3.1(或更新版本)的容器结合使用。
自 2018 年以来甚至没有 commons-fileupload
版本,也没有支持 Servlet 3.1 或更新版本的版本(commons-fileupload
的最后一个版本支持 Servlet 2.4 及更早版本)
为什么?
自 3.1 起,Multipart 功能已内置到 Servlet 规范中。
所有支持 Servlet 3.1 的服务器现在都支持分段文件上传。
包括 Jetty 9。
在代码中使用HttpServletRequest.getPart()
API。
您可以通过 @MultipartConfig
注释 and/or 或 WEB-INF/web.xml
<multipart-config>
描述符元素来配置它
参见:https://docs.oracle.com/javaee/7/tutorial/servlets011.htm
另请参阅过去关于这些功能的回答。