我需要一个api收到表单数据发布请求,经过一些处理后我需要将请求转发给另一个api。
我的第一个api是:
@Path("/integrator/api")
public class IntegratorREST {
@Context private HttpServletRequest request;
@Context private HttpServletResponse response;
@Context private ServletContext _context;
@POST
@Path("/go")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Object forwardLink(@Context UriInfo info) throws URISyntaxException, ServletException, IOException {
(... my code ...)
// For simple CORS requests, the server only needs to add these 2 header parameters that allow access to any client.
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
RequestDispatcher rd = _context.getRequestDispatcher("/uploadfile/api/send");
rd.forward(request, response);
return null;
}
}
第二个api是:
@Path("/uploadfile/api")
public class UploadFileREST {
private String DIRECTORY =
"../../pentaho-solutions/system/uploadfile/";
@SuppressWarnings("unchecked")
@POST
@Path("/send")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
public Output uploadFile(
@Context UriInfo info,
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
(... code to upload a file to server ...)
}
所以,第一个api中的rd.forward()被执行了,但是第二个api中没有任何事情发生,我的意思是,我在第一行有断点,但代码没有被执行。
另外,我在控制台中没有收到任何警告/错误消息。
如何将我的帖子请求转发到另一个端点?
感谢您的帮助。
Kleyson Rios。
答案 0 :(得分:0)
我认为你必须使用REST服务调用来调用第二个API,使用API类似Apache HTTPClient或类似的东西。
此致 Hunaid。