簡體   English   中英

帶有@GET restful 注釋的 Stackoverflow 錯誤

[英]Stackoverflow error with @GET restful annotation

所以我嘗試返回多種類型的變量,包括用戶、列表和響應。 所有這些都讓我在獲取路徑頁面中返回了一個 stackoverflow 錯誤。 我通過服務器日志發現它是一個序列化遞歸,但是無論我如何嘗試,我似乎都無法修復它。 在 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;
}

寧靜的 class 方法的接口 @GET @GET @Path(ApplicationPaths.GET) @Produces(MediaType.APPLICATION_JSON) @APIResponse(responseCode = "200") User getJson( @Parameter(ref = Parameters.QUERY) @QueryParam(Parameters.QUERY) String query);

實際 class 實現

@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();
}

我預期的 output 將是一個 Json 頁面,在瀏覽器上顯示“用戶”class 信息。

PS:服務器日志錯誤: https://pastebin.com/xgRfazE9

好的,很有趣,我通過查看我的帖子解決了我自己的問題。 所以遞歸是由於我在用戶 class 中實現的 getUser 方法。 TY 如果您嘗試閱讀並解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM