Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 集成错误:多部分和虚张声势_Java_Web Services_Jax Rs_Swagger - Fatal编程技术网

Java 集成错误:多部分和虚张声势

Java 集成错误:多部分和虚张声势,java,web-services,jax-rs,swagger,Java,Web Services,Jax Rs,Swagger,我有一个使用Jersey-1的JAX-RS Web服务。目前只有一种方法可以发送带有附件的邮件。附件必须作为多部分表单数据提供 @POST @Path("/mail") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response sendInfomailWithAttachment( @Context ServletContext context, @Context SecurityContext se

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

@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也会引发此错误)

结合

严重:方法,公共javax.ws.rs.core.Response。。。抛出java.lang.Exception,用资源类com.mywebservice.MyClass的POST注释,未被识别为有效的资源方法

如果我扔掉FormDataParam的东西,服务就会正常启动,同时也会进行swagger集成

我用


javax.servlet
servlet api
2.3
泽西岛
泽西servlet
1.17
com.sun.jersey.contribs
泽西多部分
1.17


com.wordnik
swagger-jersey-jaxrs_2.10
1.3.4

是否存在已知干扰?我还能做些什么来解决这个问题呢?

我发现,这是一个专业的解决问题


swagger lib 1.3.4使用jersey-core-1.3和jersey-server-1.3,这是maven选择的。相反,我在1.17中需要它,比如jersey servlet和jersey多部分版本。因此,我必须将这两个依赖项添加到pom中,以使maven依赖项解析使用1.17而不是1.13。

Hi@tareq,我将jersey servlet和jersey multipart都更新为1.18.1,但我仍然面临相同的问题issue@agpt您应该检查项目中已解决的依赖项。如果我没记错的话,我需要在同一版本中使用所有jersey依赖项。我想我在1.17版就有了它们,现在我更新到了jersey-2,并在2.5.1版中使用了它们。
<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>