Отправка JSON-запроса на отдых веб-службы в Java - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь отправить значение моей фиктивной веб-службе отдыха внутри строки JSON.Однако службе не удалось получить отправленное мной значение.

Во-первых, мой код JAX-RS выглядит так:

@POST
@Path("/ser1")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response convertFtoCfromInput(final BasicModel bm) throws JSONException {

    System.out.println("Value is " + bm.value);
    JSONObject jsonObject = new JSONObject();
    float celsius;
    celsius = (bm.value - 32) * 5 / 9;
    jsonObject.put("F Value", bm.value);
    jsonObject.put("C Value", celsius);

    String result = "@Produces(\"application/json\") Output: \n\nF to C Converter Output: \n\n" + jsonObject;
    return Response.status(200).entity(result).build();
}

, где класс BasicModel is:

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class BasicModel {
   @XmlElement float value;
}

Я отправляю запрос POST в "... / ftocservice / ser1", используя Почтальон, и тело моего запроса:

{"value": 900.0}

Когда я отправляюПо запросу службы не удалось получить значение 900.0.Он печатает «Значение равно 0.0» и возвращает: {«Значение C»: -17.77777862548828, «Значение F»: 0}

Где я ошибся?Спасибо уже за вашу помощь.

Ресурсы:

1 Ответ

0 голосов
/ 17 февраля 2019

Я решил проблему!

Я удалил тег «XmlElement» из значения и сделал его закрытым.Я создал для него геттер и сеттер, и он работал.

Итак, окончательный код BasicModel:

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class BasicModel {
   private float value;

   public float getValue(){
       return value;
   }

   public float setValue(float value){
       this.value = value;
   }

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