Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 如何通过多部分/表单数据文件上传至camel jetty 2.17.0上传文件?_Java_File Upload_Jetty_Apache Camel_Jquery File Upload - Fatal编程技术网

Java 如何通过多部分/表单数据文件上传至camel jetty 2.17.0上传文件?

Java 如何通过多部分/表单数据文件上传至camel jetty 2.17.0上传文件?,java,file-upload,jetty,apache-camel,jquery-file-upload,Java,File Upload,Jetty,Apache Camel,Jquery File Upload,我正在使用一个web软件将文件上传到camel jetty服务器。上传是通过浏览器通过BlueImp jQuery FileUpload()进行的。我工作的公司最近在我们的服务器端Java项目中从Camel 2.3升级到Camel 2.17。我们以前从未遇到过问题,但由于我们升级到了较新的版本,文件上载不再工作。深入研究后,我发现了一些奇怪的事情: exchange.getIn().getAttachments().size()==0(始终) 驼峰码头内的MultiPartFilter中始终抛

我正在使用一个web软件将文件上传到camel jetty服务器。上传是通过浏览器通过BlueImp jQuery FileUpload()进行的。我工作的公司最近在我们的服务器端Java项目中从Camel 2.3升级到Camel 2.17。我们以前从未遇到过问题,但由于我们升级到了较新的版本,文件上载不再工作。深入研究后,我发现了一些奇怪的事情:

  • exchange.getIn().getAttachments().size()==0(始终)
  • 驼峰码头内的MultiPartFilter中始终抛出NullPointerException,因为它试图始终获取每个表单数据部分的内容类型。。。即使默认情况下我测试的每个浏览器/代理都不会在每个零件上设置内容类型
我根据另一篇文章的建议修复了jettyMultiPartFilter中的NullPointerException,该文章直接在javascript中使用FormDataBlob强制在每个表单数据部分()上使用内容类型。但是,exchange.getIn().getBody()现在始终为空,并且exchange.getIn().getAttachments()仍然始终是一个空列表

仔细检查后,我注意到头上的二进制数据作为jqueryfileupload中的文件发送exchange.getIn().getHeader(“files[])是一个二进制数据流,但数据似乎已损坏。。。我假设是因为它在头上设置之前被转换为UTF8编码(或者反之亦然)

所以我的问题是,一个人如何通过骆驼码头上传文件?我找不到一个在现实世界中使用camel jetty 2.17.0时有效的示例。用于骆驼码头2.3的所有示例


我做错了什么?有人可以发布一个使用camel jetty 2.17的文件上传处理器的工作示例吗?

为什么不显示NPE修复程序并将其报告给Apache camel:老实说,因为它太大了,我想这不可能是Apache(或eclipse jetty)的疏忽我想一定是我做错了。@th317erd看起来唯一支持的内容类型是application/octet-stream,否则附件将被忽略。顺便说一下,前面提到的NPE是由相同的检查内容类型的
if
引起的。问题代码:Reported:)非常感谢大家!:)