2015-11-04 4 views
0

В настоящее время я работаю с веб-сервисами в первый раз, и я должен написать несколько примеров различных веб-сервисов в Джерси, используя Maven,Пример Hashmap в Java с использованием Джерси?

Но я могу только заставить его работать в Spark (вот моя искра пример)

//Hashmap Example 
get("add/:num1/:num2", new Route() { 

    @Override 
    public Object handle(Request rqst, Response rspns) throws Exception { 
     rspns.type("application/json"); 

     int num1 = Integer.parseInt(rqst.params(":num1")); 
     int num2 = Integer.parseInt(rqst.params(":num2")); 
     HashMap<String, Integer> map = new HashMap<>(); 
     map.put("result", num1+num2); 
     Gson gson = new Gson(); 
     return gson.toJson(map); 
    } 
}); 

Мне просто нужна помощь, написав его для примера из Джерси?

Любая помощь вы можете предложить было бы здорово

ответ

0

Фигурные это себе

//HashMap Example 
@GET 
@Path("add/{num1}/{num2}") 
public String Hashmap(@PathParam("num1") int num1, @PathParam("num2") int num2){ 
      HashMap<String, Integer> map = new HashMap<>(); 
      map.put("result", num1+num2); 
      Gson gson = new Gson(); 
      return gson.toJson(map); 
} 
+0

Обратите внимание, что это не потому, что вы «можете» сами создать Json, что вы «должны». Кроме этого, я не вижу, как ваше решение отличается от моего. – Filip

1

Во-первых, с Джерси вам нужно зарегистрировать JSonProvider, так что вы можете вернуть объект, и он будет сериализовать для вас в формате JSON. Вы можете альтернативно поддерживать XML без каких-либо усилий.

Лично я пользуюсь Джексоном. По умолчанию с Джерси Moxy, который не поддерживает карты, а также имеет «проблемы», даже с простым списком (вам нужно обернуть их) см this post

Настройка Джерси с Джексоном: https://jersey.java.net/documentation/latest/media.html#json.jackson

Moxy проблема с картой : How to return a JSON object from a HashMap with Moxy and Jersey

Вот рабочий пример веб-службы Джерси, возвращая карту, при использовании Джексона

@GET 
@Path("add/{num1}/{num2}") 
@Produces(MediaType.APPLICATION_JSON) 
public Response getClubNames(@PathParam("num1") Integer num1, @PathParam("num2") Integer num2) { 

    Map<String, Object> returnMap = new HashMap<String, Object>(); 

    returnMap.put("resultAsString", Integer.toString(num1 + num2)); 
    returnMap.put("resultAsInt", num1 + num2); 

    return Response.status(Response.Status.OK).entity(returnMap).build(); 

} 

Личная нота, как вы начинаете использовать Джерси:

Мне очень нравится Джерси. Но с HK2 существует серьезная проблема с жесткой связью. https://java.net/jira/browse/JERSEY-1933. Это выходит за рамки, но вы должны понимать, что это означает, прежде чем выбирать реализацию JAX-RS 2.0. В автономном веб-приложении Джерси работает как шарм.

+0

Спасибо за информацию, но это не было тихо, что я искал, я теперь понял это и отправил ответ ниже для всех, кто нуждается в этом – ClarkPamler93

Смежные вопросы