Ошибка переполнения стека с аннотацией @GET restful - PullRequest
0 голосов
/ 14 октября 2019

Итак, я попытался вернуть несколько типов переменных, включая пользователя, список и ответ. Все это возвращает мне ошибку stackoverflow на странице get path. В журнале сервера я обнаружил, что это рекурсия сериализации, но, похоже, я не могу это исправить, как бы я это ни пытался. Я видел несколько онлайн-уроков / страниц по stackoverflow, и все же я могу это исправить.

Я использую Payara версии 184 и Java 8 EE, и это спецификации проекта, поэтому я не могу изменить технологии. Intellij Idea Ultimate IDE и браузер / почтальон Chrome для проверки URL.

public class User {
private String nome;
private int idade;
private String empresa;
private String email;
//private Boolean auth;

public User (String n , int i, String e, String em/*, Boolean a*/){
    this.nome = n;
    this.idade = i;
    this. empresa = e;
    this.email = em;
    //this.auth = a;
}

public User getUser(){
    return this;
}

интерфейс для методов класса restful @GET @Path(ApplicationPaths.GET) @Produces(MediaType.APPLICATION_JSON) @APIResponse(responseCode = "200") User getJson( @Parameter(ref = Parameters.QUERY) @QueryParam(Parameters.QUERY) String query);

Реальная реализация класса

@ApplicationScoped 
public class KickoffApiImpl implements KickoffApi {

@Inject
private KickoffService kickoffService;

@Override
public User getJson(final String query) {
    /*
    List<User> users = new ArrayList<>();
    users.add(new User("pedro", 22, "ctw", "pelan05@gmail.com"));
    users.add(new User("paulo", 50, "ctw", "123abc@gmail.com"));
    users.add(new User("maria", 32, "ctw", "abc123@gmail.com"));

    return users.get(1);
    */

    User u = new User("maria", 32, "ctw", "abc123@gmail.com");
    return u;
    //return Response.ok(kickoffService.getUser()).build();
}

Мой ожидаемый вывод - страница Json с классом 'User'информация в браузере.

PS: ошибка журнала сервера: https://pastebin.com/xgRfazE9

1 Ответ

2 голосов
/ 14 октября 2019

Хорошо, как ни странно, я решил свой вопрос, посмотрев на свой пост. Таким образом, рекурсия произошла из-за метода getUser, который я реализовал в классе User. TY, если вы пытались прочитать и решить это.

...