Java 集成错误:多部分和虚张声势
我有一个使用Jersey-1的JAX-RS Web服务。目前只有一种方法可以发送带有附件的邮件。附件必须作为多部分表单数据提供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
@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>