java - 无法使用 JAX-RS 上传文件

标签 java rest tomcat jax-rs

我正在尝试将 Rest 添加到我的后端以上传文件。我在服务器上使用这段代码:

import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
@POST
@Path("/upload_thesis")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
        @DefaultValue("true") @FormDataParam("enabled") boolean enabled,
        @FormDataParam("file") InputStream file,
        @FormDataParam("file") FormDataContentDisposition fileDisposition

在我将我的程序打包为 jar 文件并将其放在 apache tomcat 服务器上之后,我在服务器上看到了这个错误:

java.lang.RuntimeException: Wrong or absent annotation at parameter with index 1 at class

我在我的依赖项上使用这个版本的 Jersey :

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-multipart</artifactId>
        <version>2.29</version>
    </dependency>

编辑:

我想我有一个依赖问题,我很困惑我必须使用哪个:

import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;

import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.glassfish.jersey.media.multipart.FormDataParam;

最佳答案

这取决于您使用的 Jersey 版本:

  • 对于 Jersey 1.x,使用来自 com.sun.jersey 的类型。
  • 对于 Jersey 2.x,使用来自 org.glassfish.jersey 的类型。

当涉及到依赖项时,为 Jersey 1.x 选择以下内容:

<dependency>
    <groupId>com.sun.jersey.contribs</groupId>
    <artifactId>jersey-multipart</artifactId>
    <version>${jersey.version}</version>
</dependency>

以及 Jersey 2.x 的以下依赖项:

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>${jersey.version}</version>
</dependency>

关于java - 无法使用 JAX-RS 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57789783/

相关文章:

api - RESTful API 中每个资源的唯一标识符?

bash - catalina.sh中的-r是什么意思?

tomcat - 在 Tomcat 集群环境中覆盖 Liferay 的 "autodeploy.enabled"属性

java - Tomcat中如何修改context.xml的默认值?

java - 从 Qt C++ 调用 Java 函数

java - FindBugs: "may fail to close stream"- 这对 InputStream 有效吗?

java - 无法为变量分配特定值

java - 我可以更改执行中的 appium 驱动程序功能吗?

如果请求错误,java 休息调用响应主体会丢失

javascript - 选项请求而不是 XMLHTTPRequest 中的 PUT