当前位置: 首页 > 知识库问答 >
问题:

使用POST上载excel文件时出现JAX-RS问题

谢高峯
2023-03-14

我正在开发一个必须接收excel文件的POST方法,但我有一些问题。这是我的密码

@Path("/rest")
public class RestManager{
    [...]

    @Path("/uploadFile")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    @POST
    public Response uploadFile(FormDataMultiPart multipart){
        [...]
    }
}

当我调用API时,在服务器端出现以下错误:

ott 09, 2017 4:58:48 PM org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor aroundReadFrom
GRAVE: MessageBodyReader not found for media type=multipart/form-data, type=class com.sun.jersey.multipart.FormDataMultiPart, genericType=class com.sun.jersey.multipart.FormDataMultiPart.

在我的web.xml中,我添加了以下代码:

   <init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
      <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
    </init-param>

我在Tomcat v7.0上运行,并添加了jersey-multipart-1.18和mimepul-1.9.3来管理Multipart数据。

我的客户端响应获得415个不受支持的媒体类型,但在我用于发送请求I的代码中,请求“Content-Type”为“multipart/form-data”,相应地带有@Consumes注释。

谁能给我提示一下,明白问题出在哪里?

共有1个答案

孔梓
2023-03-14

您使用了错误的FormDataMultiPart。您使用的是来自泽西1. x jar的,但您应该使用来自泽西2. x的。jar是jersey-media-multipart添加此jar并删除1. x jar后,FormDataMultiPart的包名称将不同。您需要从org.glassfish.jersey.multipart导入它。

另外,根据您使用的Jersey(次要)版本和您使用的< code > Jersey-media-multipart 版本,< code>mimepull版本也会有所不同。查看此链接,并单击您正在使用的版本。然后向下滚动到“编译依赖项”。您将看到< code>mimepull。这是您需要的与您正在使用的< code > jersey-media-multipart 版本兼容的版本。

 类似资料:
  • 文件上载返回“状态代码8-无效参数”响应。想知道是什么导致了这种情况。 我使用Chilkat sFTP在多个合作伙伴之间传输和接收文件,没有问题,但是对于一个新的合作伙伴,我看到以下错误。合作伙伴的技术团队正在询问是否正在调用被动连接,但我在Chilkat中看不到任何可以让我改变这一点的属性。 日志消息:

  • 我正在尝试创建一个简单的REST api,我遵循了Jersey网站上的教程:https://jersey.java.net/nonav/documentation/2.0/deployment.html 以下是错误: 原因:javax.servlet.unavailableException:org.eclipse.jetty.servlet.baseholder.doStart(basehold

  • 在这小节中将演示如何通过JAX-RS API下载java中的文本文件,图像文件,pdf文件和excel文件。 为此需要编写几行代码。 在这里使用 jersey 实现来开发JAX-RS文件下载示例。 首先打开Eclipse,创建一个动态Web项目:JaxRsFileDownload 。项目结构如下图所示 - Jersey Jar文件下载网址:https://jersey.github.io/down

  • 与上一篇教程中讲解的文件下载一样,JAX-RS也可以实现上传文件,上传的文件类型可以是:图像文件,PDF文件,Excel文件,文本文件等。 注释用于提及服务类中的参数。 用于提供文件上载的信息。 要使用JAX-RS API上传文件,我们将使用jersey 来实现。首先打开Eclipse,创建一个动态Web项目:JAXRSFileUpload,结构如下所示 - 要通过jersey实现上传文件,需要在

  • 问题内容: 如何使用jax-rs发送文件进行下载? 问题答案:

  • 我得到以下错误: PHP致命错误:在vendor/Google/apiclient/src/Google/Http/REST.PHP:118中出现未捕获的异常“Google\u Service\u exception”,消息为“未能解析内容范围头” 堆栈跟踪: 0供应商/google/apiclient/src/Google/Http/REST. php(94):Google_Http_REST: