【问题标题】:Stackoverflow error with @GET restful annotation带有@GET restful 注释的 Stackoverflow 错误
【发布时间】:2019-10-14 09:55:56
【问题描述】:

所以我尝试返回多种类型的变量,包括用户、列表和响应。所有这些都让我在获取路径页面中返回了一个 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;
}

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 页面。

P.S.:服务器日志错误: https://pastebin.com/xgRfazE9

【问题讨论】:

    标签: jakarta-ee jax-rs payara


    【解决方案1】:

    好吧,很有趣,我通过查看我的帖子解决了我自己的问题。所以递归是由于我在 User 类中实现的 getUser 方法。 TY 如果您尝试阅读并解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多