我正在尝试调用一个Web服务,该服务返回该应用程序的html页面,如何在java客户端中处理它,以便将该html返回到我的应用程序UI。我试过临时重定向。下面是我的代码:
final MultiPart multiPart = new FormDataMultiPart()
.field("msg", espXML, MediaType.APPLICATION_XML_TYPE)
.field("obj", "", MediaType.TEXT_PLAIN_TYPE);
multiPart.setMediaType(MediaType.MULTIPART_FORM_DATA_TYPE);
return Response.temporaryRedirect(new URI("https://10.10.10.62:8080/abcde/1.2/wstest/"))
// .status(302)
.entity(multiPart).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "POST, GET, PUT, UPDATE, OPTIONS")
.header("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With")
.header("Access-Control-Allow-Credentials", "true")
.build();
SEVERE:响应的映射异常:500(内部服务器错误)javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类com.sun.jersey.multipart.FormDataMultiPart和Java的消息正文编写器类型类com.sun.jersey.multipart.FormDataMultiPart,找不到MIME媒体类型application / x-www-form-urlencoded
你必须注释你的MediaType
的Response
像:
@POST
@Produces({MediaType.TEXT_HTML})
public InputStream yourFormMethod(...) {
// your processing with your MultiPart
File f = getHtmlFile();
return new FileInputStream(f);
}
要么
@POST
@Produces({MediaType.TEXT_HTML})
public String yourFormMethod(...) {
// your processing with your MultiPart
String yourHtml = "<head>...</head>";
return yourHtml;
}
并确保你使用JAX-RS
@Produces
而不是CDI
。