@FormParam дает нулевой Javascript для REST Jersey

Я пытаюсь выполнить запрос / выборку POST, если я хочу отправить некоторые значения, и после прочтения я обнаружил, что @FormParam - это то, что я должен использовать, но я не могу заставить его работать. Я стараюсь делать свой Fetch как таковой

  createOyster(){
  var resource = "version = " + this.state.version + "&customer = " + this.state.customer + "&userId = " + this.state.userId + "&oysterName = " + this.state.oysterName + "&backupFile = " + this.state.backupFile;
  console.info(resource)
  fetch('http://localhost:8080/sleepy-oyster/v2/oyster/', {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body: JSON.stringify({
      resource
    })
  })
}

И console.info (ресурс) дает

version=[object Object]&customer=NCC&userId=johjon&oysterName=NCC_johjon2&backupFile=Kund_NCC_Prod_2018-03-22.228680192.bak

И когда я пытаюсь выполнить запрос моего REST, который выглядит так

 @POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response createOyster(@FormParam("version") String version, @FormParam("customer") String customer,
                             @FormParam("userId") String userId, @FormParam("oysterName") String oysterName,
                             @FormParam("backupFile") String backupFile) throws IOException {
    System.out.println(version + "HEJ HEJ HEJ HEJ HEJ HEJ HEJ");
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
    NexusResource resource = mapper.readValue(version, NexusResource.class);
    System.out.println(resource);

     dbWorker.restoreDatabase(userId, backupFile);
     oysterWorker.createOyster(userId, oysterName);
     oysterWorker.installOyster(oysterName);
     String selectedVersion = versionWorker.getVersionFromNexus(resource,oysterName,customer);

     return Response.ok(selectedVersion).build();
}

Я получаю исключение NullPointerException, которое не указывает ни на один из моих кодов, что меня смущает.

javax.servlet.ServletException: java.lang.NullPointerException
at org.glassfish.jersey.servlet.WebComponent.serviceImpl (WebComponent.java:489)
at org.glassfish.jersey.servlet.WebComponent.service (WebComponent.java:427)
at org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.java:388)

Я, наверное, что-то напортачил с тех пор, как впервые использовал @FormParam. Может ли кто-нибудь понять, почему он дает ноль. Sout в моем REST также дает null, поэтому REST его не получает. Я предполагаю, что это потому, что версия является [object Object], потому что остальное не дает null. Как бы я с этим справился?

Если я просто console.info (this.state.version), я получу свой полный объект

{resourceURI: "http://nexus.ad.hrm.se/nexus/service/local/reposit…ent/se/hrmsoftware/hrm/hrm-release/16.1-SNAPSHOT/", relativePath: "/se/hrmsoftware/hrm/hrm-release/16.1-SNAPSHOT/", text: "16.1-SNAPSHOT", leaf: false, lastModified: "2018-05-02 06:57:07.0 UTC", …}

Измените «@FormParam» на «@RequestParam» и проверьте результат.

Chamara Maduranga 02.05.2018 09:16

Прекратите преобразовывать данные формы в JSON, т.е. просто выполните body: resource, поскольку именно это означает application/x-www-form-urlencoded.

Andreas 02.05.2018 09:17

Что касается версии, попробуйте "version = " + this.state.version.text

Andreas 02.05.2018 09:19

@Andreas Я попытался перейти на .text, он дает в console.info первую часть из [object Object], но все еще дает null в печати REST

novafluff 02.05.2018 09:31
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
215
0

Другие вопросы по теме