При попытке отправить сообщение на сервер ответ: Неподдерживаемый тип носителя. (415)Запрос на отправку REST
{
"street": "Alex",
"picture": "fsdfs"
}
Я использую Jersey 2.7. Это Okey, когда я вызываю GET, но проблема связана с методом POST. В проекте я включил org.glassfish.jersey.media:jersey-media-json-jackson и иль \ микробатареях код, как в this topic
public static void main(String[] args) throws Exception, RuntimeException {
final Application application = new ResourceConfig()
.packages("org.template")
.register(JacksonFeature.class);
server = new Server(PORT_NUMBER);
ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
servletContextHandler.addFilter(GuiceFilter.class, "/*", EnumSet.allOf(DispatcherType.class));
servletContextHandler.addServlet(DefaultServlet.class, "/*");
server.start();
server.join();
}
Simple API:
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class ExampleAPI {
@GET
@Path("hello")
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "Hello World";
}
@POST
@Path("/create")
public Response create(BeanInfo bean) {
return Response.created(UriBuilder.fromResource(BeanInfo.class)
.path("{picture}").build(bean.getPicture()))
.entity(bean.toString())
.build();
}
}
Что здесь не так ? Должен ли я сопоставлять объекты с json?
BeanInfo:
@JsonProperty("picture")
private final String picture;
@JsonProperty("street")
private final String street;
...
мой клиент «Почтальон остальное клиент», поэтому я считаю, это ОКЕЙ – qwerty12345
Хорошо, но вы должны настроить его правильно. Я использую Postman для тестирования своих API, так что посмотрите на это изображение, чтобы посмотреть, как его правильно настроить (обратите внимание на часть «Заголовок») -> [Изображение на TinyPic] (http://tinypic.com/r/2dsqtg1/8) – Marlon
Проблема была в классе bean. – qwerty12345