Spring 使用 Jersey 多部分文件上传无法启动
Spring Boot with Jersey Multipart File upload not working
我在我的应用程序中使用 Spring Boot Jersey 并尝试使用 REST 上传多部分文件,但每当我进行 API 调用时,它总是给出以下异常。
Caused by: java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided
at
org.apache.catalina.connector.Request.parseParts(Request.java:2669)
at org.apache.catalina.connector.Request.getParts(Request.java:2636)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1083)
at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:347)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:85)
... 32 common frames omitted
我已经尝试了所有不同的东西,比如在 application.properties 中设置属性,还创建了 be config bean.Please 见下文。
如果有人能帮我解决这个问题,我真的很感激。
方法一
spring.http.multipart.enabled=true
spring.http.multipart.max-file-size=1MB
spring.http.multipart.max-request-size=10MB
spring.http.multipart.resolve-lazily=false
方法二
@Configuration
public class MultiPartConfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize(1024L);
return factory.createMultipartConfig();
}
}
我的 API 端点。
@POST
@Path("/picture")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response loadFile(@FormDataParam("file") InputStream file,
@FormDataParam("file") FormDataContentDisposition fileDisposition,
@Context HttpServletRequest request) {
我认为您可能需要将 MultipartFeaure
添加到您的配置中。
@Configuration
public class JerseyConfiguration extends ResourceConfig {
public JerseyConfiguration(){
register(MultiPartFeature.class);
}
}
我在我的应用程序中使用 Spring Boot Jersey 并尝试使用 REST 上传多部分文件,但每当我进行 API 调用时,它总是给出以下异常。
Caused by: java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided
at
org.apache.catalina.connector.Request.parseParts(Request.java:2669)
at org.apache.catalina.connector.Request.getParts(Request.java:2636)
at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1083)
at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:347)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:85)
... 32 common frames omitted
我已经尝试了所有不同的东西,比如在 application.properties 中设置属性,还创建了 be config bean.Please 见下文。 如果有人能帮我解决这个问题,我真的很感激。
方法一
spring.http.multipart.enabled=true
spring.http.multipart.max-file-size=1MB
spring.http.multipart.max-request-size=10MB
spring.http.multipart.resolve-lazily=false
方法二
@Configuration
public class MultiPartConfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize(1024L);
return factory.createMultipartConfig();
}
}
我的 API 端点。
@POST
@Path("/picture")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response loadFile(@FormDataParam("file") InputStream file,
@FormDataParam("file") FormDataContentDisposition fileDisposition,
@Context HttpServletRequest request) {
我认为您可能需要将 MultipartFeaure
添加到您的配置中。
@Configuration
public class JerseyConfiguration extends ResourceConfig {
public JerseyConfiguration(){
register(MultiPartFeature.class);
}
}