当前位置: 首页 > 知识库问答 >
问题:

Quarkus resteasy multipart无法找到内容类型多部分/表单数据类型的写入程序

谷博艺
2023-03-14

我正在做一个项目,在这个项目上,我的API使用了REST服务。如果我在类的主函数中使用REST服务,它工作得很好。但当我从使用Quarkus resteasy的servlet调用它时,它抛出异常。例外情况如下。

javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request: javax.ws.rs.ProcessingException: RESTEASY003215: could not find writer for content-type multipart/form-data type: org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataOutput

servlet的主要代码如下所示。

    String httpURL = "REST api";
    String filePath = "filePath";
    ResteasyClient resteasyClient = null;
    ResteasyWebTarget resteasyWebTarget = null;
    MultipartFormDataOutput multipartFormDataOutput = null;
    GenericEntity<MultipartFormDataOutput> genericEntity = null;
    Response response = null;

    try{
        resteasyClient = new ResteasyClientBuilderImpl().build();
        resteasyWebTarget = resteasyClient.target(httpURL);
        resteasyWebTarget.property("Content-Type", MediaType.MULTIPART_FORM_DATA);
        multipartFormDataOutput = new MultipartFormDataOutput();
        multipartFormDataOutput.addFormData(
                "file",
                new FileInputStream(filePath),
                MediaType.MULTIPART_FORM_DATA_TYPE,
                "fileName");
        genericEntity = new GenericEntity<MultipartFormDataOutput>(multipartFormDataOutput, MultipartFormDataOutput.class);

        // invoke service
        response = resteasyWebTarget
                       .request()
                       .post(Entity.entity(genericEntity, MediaType.MULTIPART_FORM_DATA));

该项目的依赖性如下。

implementation 'io.quarkus:quarkus-rest-client-jackson'
implementation 'io.quarkus:quarkus-rest-client'
implementation 'io.quarkus:quarkus-resteasy-multipart'
implementation 'io.quarkus:quarkus-resteasy'
implementation 'io.quarkus:quarkus-resteasy-jackson'
implementation 'io.quarkus:quarkus-arc'
testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'

奇怪的是,类的主函数中的相同代码可以很好地运行。这个问题困扰了我一天,如果你能帮助我,我将不胜感激。

共有1个答案

章誉
2023-03-14

Quarkus扰乱了提供者发现。如果手动添加,则可以找到编写器。例如。:

@Provider
@Produces({"multipart/form-data"})
public class MultiformWriterProvider extends MultipartFormDataWriter{}
 类似资料:
  • 我是Guzzle的新手,我正试图提出一个Rest请求来签署PDF文件。供应商表示: 您需要使用基本身份验证 系统返回一个包含签名PDF文件的响应,类型为application/octet stream 这是我用古斯测试的代码,但提供商说在应用程序/pdf中发送的mime类型。如何“强制”PDF文件的mimetype? 谢谢你的帮助。

  • 我想问一些问题,最近我不得不将我们的遗留应用程序迁移到weblogic,但有些功能不能使用(多部分post form),下面是我的代码: noticewrite.jsp: noticeProc.jsp 问题是,当我单击提交按钮时,文件存储到服务器,但文本字段和文本区域值没有存储到数据库,并引发错误: 我需要你的建议,这有什么问题?因为它在tomcat上工作得很好,但不能在weblogic下运行,谢

  • 问题内容: 我有一个宁静的服务(发布),它消耗(application / json)并产生(application / json)。此服务的单个参数是带注释的java对象。 我正在使用org.jboss.resteasy.client.ClientRequest将请求发送到服务。但是,我在客户端得到了这个异常和异常: 找不到内容类型应用程序/ json类型的编写器。 这是否意味着我缺少一些库ja

  • 我正在开发Web API的-Web API 2。我的基本需要是创建一个API来更新用户的配置文件。在这种情况下,ios和android将以多部分/表单数据的形式向我发送请求。他们会给我发送一些带有图像的参数。但是每当我尝试创建API时,我的模型每次都是空的。 我在WebApiConfig中也添加了这一行: 这是我的班级: 这是我的控制器: 我甚至没有得到参数值在我的模型。我做错什么了吗? 与此相关

  • 我正在努力将带有JSON有效负载的POST请求发送到远程服务器。 此GET curl命令工作正常: 这个POST也很好: 所以我试着在我的Android应用程序中模仿它。 该应用程序在第一个GET请求上运行良好,但在第二个POST请求上发出400个错误请求。 下面是用于GET请求的代码: 以下是POST请求的源代码: 但它传达了这样一个信息: 这是Spring座控制器: 凭据资源类代码:

  • 我写了一个jsp页面上传图像使用POST方法通过使用实际上文件是成功上传和后值也得到正确的,但它是抛出一个异常