首页 文章

集成错误jersey-multipart和swagger

提问于
浏览
1

我有一个使用Jersey-1的JAX-RS网络服务 . 目前只有一种方法可以发送带附件的邮件 . 附件必须作为多部分表单数据提供 .

@POST
@Path("/mail")
@Consumes(MediaType.MULTIPART_FORM_DATA)   
public Response sendInfomailWithAttachment(

        @Context ServletContext context,
        @Context SecurityContext security,

        @QueryParam ("FROM") String senderAddress,
        @QueryParam ("SUBJECT") String subject,

        @QueryParam ("TO") String toRecipients,
        @QueryParam ("CC") String ccRecipients,
        @QueryParam ("BCC") String bccRecipients,

        @QueryParam ("noCopy") boolean sendNoCopy,

        @FormDataParam("attachment") InputStream fileInputStream,
        @FormDataParam("attachment") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("attachment") FormDataBodyPart fileBody,

        @FormDataParam("content") FormDataBodyPart content
        ){}

该方法工作正常 . 但是当我尝试集成swagger时,我总是得到这个错误:

严重:缺少方法public javax.ws.rs.core.Response的依赖...在索引8处的参数处抛出java.lang.Exception(对于参数9,10和11也抛出此错误)

与...结合

SEVERE:方法,公共javax.ws.rs.core.Response ...抛出java.lang.Exception,用资源的POST注释,类com.mywebservice.MyClass,不被认为是有效的资源方法 .

如果我抛出FormDataParam的东西,服务正常启动,也与swagger集成 .

我用

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.17</version>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>jersey-multipart</artifactId>
        <version>1.17</version>
    </dependency>

<dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-jersey-jaxrs_2.10</artifactId>
        <version>1.3.4</version>
    </dependency>

有没有已知的干扰?我能做些什么来解决这个问题?

1 回答

  • 1

    我发现,这是一个maven解决问题 .

    swagger lib 1.3.4使用jersey选择的jersey-core-1.3和jersey-server-1.3 . 相反,我需要它在1.17,如jersey-servlet和jersey-multipart版本 . 所以我不得不将这两个依赖项添加到pom中,以使maven依赖项解析在1.13上使用1.17 .

相关问题