处理multipart/form-data输入

6

我刚刚尝试使用FormDataMultiPart,但不幸的是它似乎没有帮助。

现在我收到以下错误消息:

SEVERE: A message body reader for Java class com.sun.jersey.multipart.FormDataMultiPart, and Java type class com.sun.jersey.multipart.FormDataMultiPart, and MIME media type multipart/form-data; boundary=----------Ef1gL6cH2ae0gL6Ij5cH2Ef1KM7Ij5 was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
  com.sun.jersey.core.impl.provider.entity.DocumentProvider
  com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
  com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
  com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
  com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
  com.sun.jersey.core.impl.provider.entity.EntityHolderReader
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy

这是服务器端问题还是客户端问题?

我所使用的客户端代码取自于这个网站


异常提示消息格式不正确。 - bmargulies
@bmargulies 那么,问题出在上传客户端上? - quarks
你不应该使用 com.sun.* 的API!虽然这并不能解释你的错误,但这是一个非常糟糕的想法。如果有人试图在 OpenJDK 上运行你的代码会怎样? - fge
@fge,感谢您的提示。然而,这段代码在OpenJDK中无法运行。 - quarks
不查看线路上发生了什么,无法确定。使用tcpmon或其他工具进行手动验证。或者,如果客户端在浏览器中,则Chrome的开发人员工具将全部显示。 - bmargulies
2个回答

9

我在想如何在RESTful客户端中上传文件。一定要试一下。 - Bob Kuhar
直到我将mimepull.jar添加到类路径中,我才解决了这个相同的错误。 - fthinker
你需要使用multipart(与你的Jersey服务器版本相同的版本)(我的是http://mvnrepository.com/artifact/com.sun.jersey.contribs/jersey-multipart/1.14),并注意依赖部分,其中显示了对mimepull的需求并提供了一个链接(mimepull-1.6.jar)。 - Jason

4

已解决:

include mimepull-1.6.jar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接