【问题标题】:Jersey POST Api not working without content lengthJersey POST Api 在没有内容长度的情况下无法工作
【发布时间】:2021-03-20 17:06:20
【问题描述】:

当我没有从邮递员发送内容长度时,我在 Jersey POST API 中遇到问题。

@Path(value = "/upload")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface FileUpload {

    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void upload(@Context final HttpServletRequest request,
            @Parameter(schema = @Schema(type = "string", format = "binary")) @NotNull @FormDataParam("file") InputStream modelInputStream,
            @Parameter(hidden = true) @FormDataParam("file") FormDataContentDisposition modelFileFormDataContentDisposition)
            throws IOException;
    }

我们知道默认情况下邮递员发送内容长度(隐藏 标题),但我没有发送它。

当我通过内容长度时,一切正常。但是当我没有通过它时,我会给出以下异常

2020-12-09 14:51:36.951 错误 27356 --- [nio-8082-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] :Servlet.service() for servlet [dispatcherServlet] 抛出异常

java.lang.IllegalStateException: 无法处理零件为否 提供了多部分配置 org.apache.catalina.connector.Request.parseParts(Request.java:2801) ~[tomcat-embed-core-9.0.30.jar:9.0.30] 在 org.apache.catalina.connector.Request.getParts(Request.java:2769) ~[tomcat-embed-core-9.0.30.jar:9.0.30] 在 org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1098) ~[tomcat-embed-core-9.0.30.jar:9.0.30]

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • clientConfig.setChunkedEncodingEnabled(false);您可以尝试将其设置为 false
  • 你在用HttpServletRequest做什么?
  • @PaulSamsotha 我想从请求对象中获取内容长度,所以我使用HttpServletRequest

标签: java spring spring-boot jersey postman


【解决方案1】:

allowCasualMultipartParsing="true"

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2019-01-01
    • 2012-12-21
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多