Я пытаюсь настроить игрушечное приложение (которое может когда-нибудь превратиться в настоящее приложение).У меня проблемы с Винком и Джексоном.У меня есть два приложения: одно запускает Wink-сервер на пристани и, кажется, отлично предоставляет некоторые данные JSON;один работает подмигивающий клиент на пристани и получает данные JSON просто отлично.Проблема заключается в автоматической десериализации данных JSON обратно в мой Java-бин.
Вот код, который я использую в своем клиентском действии wink:
RestClient client = new RestClient();
Resource resource = client.resource("http://localhost:8081/helloworld");
User user = resource.accept(MediaType.APPLICATION_JSON).get(User.class);
Вот ошибка, которую я получаю, когда пытаюсьзапустите действие Struts:
java.lang.RuntimeException: No javax.ws.rs.ext.MessageBodyReader found for type class my.package.structure.User and media type application/json. Verify that all entity providers are correctly registered.
org.apache.wink.client.internal.handlers.ClientResponseImpl.readEntity(ClientResponseImpl.java:123)
org.apache.wink.client.internal.handlers.ClientResponseImpl.getEntity(ClientResponseImpl.java:65)
org.apache.wink.client.internal.handlers.ClientResponseImpl.getEntity(ClientResponseImpl.java:52)
org.apache.wink.client.internal.ResourceImpl.invoke(ResourceImpl.java:186)
org.apache.wink.client.internal.ResourceImpl.get(ResourceImpl.java:294)
my.package.structure.action.HelloWorldAction.execute(HelloWorldAction.java:29)
...
Если я заменим последнюю строку в первом фрагменте кода на следующую строку, все будет работать нормально и шикарно.
String message = resource.accept(MediaType.APPLICATION_JSON).get(String.class);
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(message, User.class);
Понятно, что данныепроходит очень хорошо, но проблема, похоже, заключается в том, что класс JacksonJsonProvider не зарегистрирован в клиенте Wink.Я видел много способов зарегистрировать провайдера на сервере Wink, но не на клиенте Wink.
Можно ли сделать так, чтобы первый фрагмент кода работал правильно?Если да, то как?
(Кстати, другая проблема может заключаться в том, что я пропускаю аннотации в своем классе User. Сейчас их нет. Может быть, мне нужны ...)