Я пытаюсь выполнить запрос / выборку POST, где я хочу отправить некоторые значения, и после прочтения я обнаружил, что @FormParam - это то, что мне следует использовать, но я не могу заставить его работать. Я пытаюсь сделать мою выборку как таковую
createOyster(){
var resource = "version=" + this.state.version + "&customer=" + this.state.customer + "&userId=" + this.state.userId + "&oysterName=" + this.state.oysterName + "&backupFile=" + this.state.backupFile;
console.log(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.log (ресурс) выдает
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 также дает ноль, поэтому REST не получает его. Я предполагаю, что это потому, что версия [объектный объект], потому что остальное не дает ноль. Как бы я справился с этим?
Если я просто console.log (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", …}