Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 Spark:多部分请求缺少内容_Java_Multipartform Data_Httpserver - Fatal编程技术网

Java 8 Spark:多部分请求缺少内容

Java 8 Spark:多部分请求缺少内容,java,multipartform-data,httpserver,Java,Multipartform Data,Httpserver,已解决-请参阅下面的编辑评论 下面是关于如何使用post请求上传文件的JavaSpark 我的上传请求头和正文: Content Type: multipart/form-data; boundary=zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz body: --zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz Content-Disposition: form-data; name="file"; filename="test_file

已解决-请参阅下面的编辑评论

下面是关于如何使用post请求上传文件的JavaSpark

我的上传请求头和正文:

    Content Type: multipart/form-data; boundary=zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz

    body: --zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz
    Content-Disposition: form-data; name="file"; filename="test_file"
    Content-Type: application/octet-stream
    Content-Transfer-Encoding: binary

    some text

    --zQqNxBjHLrzzCCIjVOhwqHUxRSkiHEz--
使用Java Spark framework“我有以下代码:

Spark.before((request, response) -> {

            MultipartConfigElement multipartConfigElement = new MultipartConfigElement("/tmp");
            request.raw().setAttribute("org.eclipse.multipartConfig", multipartConfigElement);

            System.out.println(request.raw().getPart("file"));

});
但是,当我尝试运行该示例时。我得到以下例外情况:

 [qtp244774599-29] ERROR spark.webserver.MatcherFilter - 
    java.io.IOException: Missing content for multipart request
        at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:480)
        at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:402)
        at org.eclipse.jetty.server.Request.getPart(Request.java:2046)
        at javax.servlet.http.HttpServletRequestWrapper.getPart(HttpServletRequestWrapper.java:361)
        at 
Main.lambda$main$0(Main.java:39)
        at 
Main$$Lambda$1/1190654826.handle(Unknown Source)
        at spark.SparkBase$2.handle(SparkBase.java:343)
        at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:120)
        at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60)
编辑


找到了解决办法。Spark最近发布了v2.3,它与HaiderAgha answer一起实际运行。因此,解决方案是更新到v2.3并使用
org.eclipse.jetty.multipartConfig
而不是
org.eclipse.multipartConfig
此修复程序仅适用于spark 2.3

而不是

request.raw().setAttribute("org.eclipse.multipartConfig",multipartConfigElement);
使用


此修复程序实际上仅适用于最近发布的Spark 2.3。无论如何,我已经将这个答案标记为解决方案,并在我原来的帖子中添加了评论。谢谢这对我有用。我注意到,当使用多部分/表单数据时,您必须对所有内容使用“部分”,因为spark无法处理它。垃圾框架。
request.raw().setAttribute("org.eclipse.jetty.multipartConfig",multipartConfigElement);