Клиент для многокомпонентных данных формы Rest WS с HTML в качестве ответа - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь вызвать веб-сервис, который возвращает HTML-страницу этого приложения, как справиться с этим в Java-клиенте, чтобы этот HTML-код должен быть возвращен в мой пользовательский интерфейс приложения. Я пытался с временным перенаправлением. ниже мой код:

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 / x-www-form-urlencoded не найдено

1 Ответ

0 голосов
/ 04 сентября 2018

Вы должны аннотировать 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...