【发布时间】:2021-11-21 14:16:12
【问题描述】:
我正在尝试在接受文件上传的 Wildfly 应用服务器上设置 REST API。在测试它时,我遇到了以下问题。尝试使用 Content-Type: multipart/form-data 上传时,我收到以下回复:
HTTP Status Code: 400
Content-Type: text/html;charset=UTF-8
Body: "java.io.IOException: RESTEASY007550: Unable to get boundary for multipart"
这是尝试的请求。
Headers
{
"content-length": "233",
"content-type": "multipart/form-data",
"accept-encoding": "multipart/form-data",
"authorization": "Bearer ommitted"
"user-agent": "PostmanRuntime/7.28.3"
}
Body
----------------------------976685076323434093219932
Content-Disposition: form-data; name="file"; filename="import.csv"
Content-Type: text/csv
destination
1234567890
----------------------------976685076323434093219932--
API端点配置如下:
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
@Stateless
@Path("/import")
@Produces(MediaType.APPLICATION_JSON)
public class ImportAPI {
@POST
@Path("/{id}/do")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response doImport(
@Context HttpServletRequest request,
@PathParam("id") Integer campaignId,
MultipartFormDataInput input) {
// Code omitted
return Response.ok().build();
}
}
发生错误时,服务器日志上没有打印错误日志。我正在使用 Wildfly 23 和 RESTEasy 3.15.1.Final(由 Wildfly App Server 提供)。
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>3.15.1.Final</version>
<scope>provided</scope>
</dependency>
我不完全确定请求或 API 端点是否有问题,我希望对此有所了解。
【问题讨论】:
标签: java wildfly multipartform-data resteasy java-ee-8