我正在开发一个项目,在该服务器端我为我的 APIS 使用了 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'
奇怪的是,类的main函数中同样的代码可以运行良好。我被这个问题困扰了一天,如果你能帮助我,我将不胜感激。