HelloJsonResponse.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package hellowicket;
  2. import java.io.IOException;
  3. import java.util.Map;
  4. import org.apache.wicket.request.resource.AbstractResource;
  5. import org.apache.wicket.util.collections.MiniMap;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. public class HelloJsonResponse extends AbstractResource
  8. {
  9. private static final long serialVersionUID = 1L;
  10. private static final String CONTENT_TYPE = "application/json";
  11. private static final ObjectMapper mapper = new ObjectMapper();
  12. protected ResourceResponse newResourceResponse(Attributes attributes)
  13. {
  14. final ResourceResponse response = new ResourceResponse();
  15. response.setContentLength(27);
  16. response.setContentType(CONTENT_TYPE);
  17. response.setWriteCallback(new WriteCallback()
  18. {
  19. public void writeData(Attributes attributes)
  20. {
  21. Map<String, String> data = new MiniMap<>(1);
  22. data.put("message", "Hello, World!");
  23. try
  24. {
  25. String json = HelloJsonResponse.mapper.writeValueAsString(data);
  26. attributes.getResponse().write(json);
  27. }
  28. catch (IOException ex)
  29. {
  30. // do nothing
  31. }
  32. }
  33. });
  34. return response;
  35. }
  36. }