背景
我有两项服务。 服务A 暴露于外界,服务B 由服务A 调用。所有这些服务都是Dropwizard服务。我要实现的功能是从前端上传文件,该文件上传到处理auth的 Service A 。应该将相同的请求转移到服务B 。 服务B 应该获取文件,并在压缩和创建缩略图后将其保存到磁盘。
我已经使用邮递员分别测试了这两种服务,它们能够接收InputStream文件和内容处置。
问题
我面临的问题是当我要将formData中的文件从服务A 传递到服务B 时。
这是服务A 中的代码,用于将表单数据发送到服务B 。
@POST
@Timed
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun create(
@Auth user: AuthUser,
@FormDataParam("file") file: InputStream,
@FormDataParam("file") fileDetail: FormDataContentDisposition,
@FormDataParam("file") body: FormDataBodyPart,
@PathParam("res_id") articleId: String): Response {
val multiPart = FormDataMultiPart()
multiPart.bodyPart(body)
val target = this.client.target("http://localhost:8082/file/create?res_id=1")
val response = target.request().post(Entity.entity(multiPart, multiPart.mediaType), Response::class.java)
Response.status(response.status).entity(response.entity).build()
}
这是服务B 中接收它的代码。
@POST
@Path("/create")
@Consumes(MediaType.MULTIPART_FORM_DATA)
fun create(
@FormDataParam("file") file: InputStream,
@FormDataParam("file") fileDetail: FormDataContentDisposition,
@QueryParam("res_id") resId: String): Response {
resourceLogger.info("Res id in media create $resId")
upload_file(file, fileDetail)
return Response.status(201).entity(mapOf("success" to true)).build()
}
请求到达服务A ,并发送到服务B 。但是服务B 响应为400。没有日志或堆栈跟踪。无法找出问题所在。任何帮助将不胜感激。