Jakarta ee JAX-RS中使用多部分/表单数据的实现无关的方法

Jakarta ee JAX-RS中使用多部分/表单数据的实现无关的方法,jakarta-ee,jax-rs,multipartform-data,Jakarta Ee,Jax Rs,Multipartform Data,假设我有很多方法 @POST @Path("stage") @Consumes(MediaType.MULTIPART_FORM_DATA) @Produces(MediaType.APPLICATION_JSON) public ContractStageFile replaceFile(@FormDataParam("file") InputStream fileStream, @FormDataParam("file") FormDataContentDisposition fileDis

假设我有很多方法

@POST
@Path("stage")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public ContractStageFile replaceFile(@FormDataParam("file") InputStream fileStream, @FormDataParam("file") FormDataContentDisposition fileDisposition)  throws FileFacade.TransactionRepositoryException {
...
}
然后有一天我们开始迁移到Wildfly。我不得不用Resteasy多部分实现重写所有这些方法

@POST
@Path("stage")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public ContractStageFile replaceFile(@MultiPartForm Form form)  throws FileFacade.TransactionRepositoryException {
...
}
我认为应该有一种方法在没有不必要的依赖性的情况下做得更好。 所以我试图像这样直接从Servlet获取部分

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String upload(@Context HttpServletRequest request, @Context ServletContext servletContext) throws IOException, ServletException {
    servletContext.setAttribute(MultipartConfig.class.getName(),new MultipartConfigElement("C:\\deleteme\\tmp"));
    Part file = request.getPart("file");
    return 'upload';
}
但我得到一个错误“Servlet上不存在多部分配置”


那么,是否有一种与实现无关的方法来使用mime“Multipart/Form Data”文件?

尝试在您的web.xml中添加
Multipart config
?Web.xml似乎不接受根级别的标记<代码>注释
@MultipartConfig
似乎被忽略。。。添加
@Webservlet
和扩展
HttpServlet
并没有解决问题@paul samsotha可能还有其他方法吗?尝试在web.xml中添加
多部分配置
。我应该如何全局配置多部分配置?Web.xml似乎不接受根级别的标记<代码>注释
@MultipartConfig
似乎被忽略。。。添加
@Webservlet
和扩展
HttpServlet
并没有解决问题@保罗·桑索塔也许还有别的办法吗?