首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quarkus-resteasy-multipart找不到内容类型多部分/表单-数据类型的作者

Quarkus-resteasy-multipart找不到内容类型多部分/表单-数据类型的作者
EN

Stack Overflow用户
提问于 2021-08-12 08:39:30
回答 1查看 279关注 0票数 0

我正在做一个在服务器端使用REST服务作为APIS的项目。如果我在类的主要功能中使用REST服务,那么它运行得很好。但是,当我使用Quarkus从servlet调用它时,它会抛出异常。例外情况如下。

代码语言:javascript
复制
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的主要代码如下所示。

代码语言:javascript
复制
    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));

该项目的依赖关系如下。

代码语言:javascript
复制
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'

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

EN

回答 1

Stack Overflow用户

发布于 2022-02-01 15:29:48

夸库斯搞砸了提供者的发现。如果您手动添加它,则可以找到写入器。例如:

代码语言:javascript
复制
@Provider
@Produces({"multipart/form-data"})
public class MultiformWriterProvider extends MultipartFormDataWriter{}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68754152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档