我正在尝试使用spring boot和jersey创建API端点,但是在调用时遇到错误:
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided
Jersey配置
@Configuration
@ApplicationPath(PathConstants.API_PATH)
@Profile(Profiles.PROFILE_NOT_ACCEPTANCE)
public class JerseyConfig extends ResourceConfig {
public JerseyConfig() {
registerClasses(this.getComponents());
property(org.glassfish.jersey.server.ServerProperties.BV_SEND_ERROR_IN_RESPONSE, true);
}
protected Set<Class<?>> getComponents() {
return new HashSet<>(Arrays.asList(
// App filters
CORSFilter.class,
// App Routes
ApiResource.class,
ResponseEntity.class,
MyEntity.class
));
}
}
Api资源(控制器)
public class VanResource {
@Autowired
private Service service;
@GET
@Path(PathConstants.RUN)
@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON + ";charset=utf-8")
public ResponseEntity<MyEntity> run(
@RequestParam(value = "user", required = true) String user,
@RequestParam(value = "country", required = false) String country,
@RequestParam(value = "date", required = false) String dateStr) {
LocalDateTime date = null;
if (dateStr != null) {
DateTimeManager dateTimeManager = new DateTimeManager();
date = dateTimeManager.getLocalDateTime(dateStr);
}
MyEntity myEntity = service.getRun(user, country, date);
return new ResponseEntity<>(myEntity, HttpStatus.OK);
}
}