В моих приложениях REST (в GlassFish 4.1.2) я хочу преобразовать POJO в JSON и обратно. Все примеры упрощают задачу, но мне чего-то не хватает.
Вот мое приложение:
@ApplicationPath("/")
public class RootApp extends Application {
@Override
public Set<Class<?>> getClasses() {
HashSet set = new HashSet<Class<?>>();
set.add(HelloWorld.class);
return set;
}
@Override
public Set<Object> getSingletons() {
HashSet set = new HashSet<Object>();
MOXyJsonProvider moxyJsonProvider = new MOXyJsonProvider();
moxyJsonProvider.setFormattedOutput(true);
set.add(moxyJsonProvider);
return set;
}
}
А вот и Ресурс:
@Path("helloworld")
public class HelloWorld {
private static int counter = 1;
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getInevitableMessage() {
JsonHello hj = new JsonHello("Hello World", counter++);
return Response.ok(hj).build();
}
}
И наконец, POJO для преобразования в JSON и из него:
public class JsonHello {
private int count;
private String message;
public JsonHello(String message, int count) {
this.message = message;
this.count = count;
}
public int count() { return count; }
public void count(int value) { count = value; }
public String message() { return message; }
public void message(String value) { message = value; }
}
Я имею в виду ответ с тегами в этой ветке. Когда я пытаюсь получить доступ к "/ helloworld", возникает следующее исключение:
org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.persistence.jaxb.BeanValidationHelper
Это приложение работает, если ресурс просто возвращает строку. В файле web.xml ничего нет, поскольку я разрешаю Glassfish устанавливать приложение через его декораторы.
Любая идея, что мне здесь не хватает?
JacksonFeature
вместо провайдера MOXy. - person Paul Samsotha   schedule 09.04.2017